在ES6 之前的ES5中创建对象的几种方式。
- 对象字面量
var obj1 = {};
- new Object()
var obj2 = new Object();
- 自定义构造函数
fucntion Star(name,age){
this.name=name;
this,age=age;
this.sing=function(){
console.log("我会唱歌")
}
}
var ldh = new Star("刘德华",20);
ldh.sing();
这里的构造函数是一种特殊的构造函数,主要为对象的成员变量赋值和实例化对象与new一起使用。我们可以把对象的公共的属性和方法抽取出来,封装到这个函数里边
- 在new时会执行的几件事
1.在内存中创建一个空对象
2.让this 指向这个新对象
3.执行构造函数里边的代码,给这个新对象添加属性和方法
4.返回这个新对象(构造函数里边不需要rerurn)
js中的成员
- 构造函数中的属性和方法称之为成员,成员可以添加。
1.实例成员是构造函数内部通过this添加的成员。如Star的name、age、sing。实例成员只能通过实例化的对象访问(ldh.name)
2.静态成员在构造函数本身上添加的成员
Star.sex='男';
console.log(Star.sex)
静态函数只能通过构造函数访问,不能通过对象访问