JavaScript中的对象,是无序属性的集合,其属性可以包含基本值,对象或函数。我们可以把JavaScript中对象想象成键值对,其中的值可以是数据和函数。
创建对象的三种方式:
1.字面量方式
var obj1={
name:"小华",
age:20,
friends:["小明","小丽"],
play:function () {
console.log(this.name+"喜欢玩羽毛球");
}
};
2.用Object()构造函数
var obj2=new Object();
3.自定义构造函数,创建自定义对象
function Person(name,age) {
this.name=name,
this.age=age,
this.fridens=["小明","小丽"],
this. play=function () {
console.log(this.name+"喜欢玩羽毛球");
}
}
var obj3=new Person("小华",20);
利用自定义构造函数创建对象的好处是:可以确定某个对象属于哪个类型,并且可以初始化一些属性
console.log(obj3 instanceof Person);//ture
当程序执行 var obj3=new Person("小华",20); 的时候,
1.内存开辟空间,存储心创建的对象;
2.会把this设置为当前对象;(构造函数中的this始终指向new出来的当前对象)
3.执行构造函数中的代码,设置对象的属性与方法;
4.返回新创建的对象,(用obj3去接受这个对象)
初学者可能会出错的地方:
var obj4={};
console.log(obj4.name);
输出的结果是:undefined 因为JavaScript是一门动态类型的语言,对象只要通过.就可以拥有这个属性了。
上述例子中 obj4.name 就说明obj4这个对象已经有name这个属性了,只不过没有赋值。