JavaScript、ES6中的类和对象

面向对象可以用于描述现实世界的事物,但是事物分为具体的(特指的)事物和抽象的(泛指的)事物。

面向对象思维的特点:

1.抽取(抽象)对象共有的属性和行为组织(封装)成一个类(模板)

2.对类进行实例化,获取类和对象

3.对象--特指的

1) 对象是一个具体的事物,一个苹果、一张网页、一个数据库、一个与远程服务器的连接也是对象;

2) javascript中 对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如,字符串、数值、数组、函数等。

属性:事物的特征,在对象中用属性来表示(常用名词)如,人的name

方法:事物的行为,在对象中用方法来表示(常用动词)

4.类--泛指的

可以用class关键字声明一个类(字母大写),之后以这个类来实例化对象。

5.类和对象的区别:

1) 类抽象了对象的公共部分,它泛指某一大类(class)

2) 对象特指某一个,通过类实例化一个具体的对象

3) 类必须使用new实例化对象

4) 创建类 创建对象

语法:

class Name { // body}

创建实例:

var xx = new Name();

6.语法规范:

1) 用class关键字声明一个类,首字母大写

2) 类里面的constructor函数,存放的是类的共有属性;

可以接受传递过来的参数,同时返回实例对象(不需要return哦)

只要new生成实例时,就会自动调用这个函数,如果我们不写这个函数,类会自动生成这个函数

3) 生成实例的new不能省略

4) 创建类时 类名后面不加小括号,生成实例 类后面加小括号

5) 构造函数不需要加function(类里面的所有函数不需要添加function)

6) 多个函数方法之间不需要用逗号分隔

具体的实例如下:

// 1.创建一个明星类
class Star{
    // 类的共有属性放到constructor中
    constructor(name, age){
        this.name = name;
        this.age  = age;
    }
    sing(song){
        alert(this.name+"唱"+song);
    }
    play(){
        alert("play");
    }
}
// 2.利用类创建对象
var aa = new Star('小明', 20);
var bb = new Star('小红', 20);

console.log(aa.name); // 小明
console.log(bb.age);  // 20
aa.sing("lala"); // 小明唱lala
bb.play(); // play