在ES6之前,对象不是基于类创建的,是用一种构造函数的特殊函数来定义对象和他们的特征。
有三种定义对象的方式。
用stu对象来举例:
一、利用new Object()创建对象。
var stu = new Stu(name,age,score);
二、利用对象字面量方式来创建对象
var stu = {name,age,score};
三、利用构造函数来创建对象
function Stu(name,age,score){
this.name = name;
this.age = age;
this.score = score;
//创建方法
this.sing = function(){
sonsloe.log(name+'在唱歌');
}
}
最后还要再实例化,
var ycy = new Stu();
构造函数是一种特殊的函数,主要用来初始化对象(this.属性名 = 属性名),为对象成员赋初始值,和new一起使用,可以把对象中的公共属性和方法抽取出来,封装到这个函数里去。
new在执行时会做四件事:
1.在内存中创建一个新的空对象。
2.让this指向这个新的对象。
3.执行构造函数里面的代码,给这个属性添加新的属性和方法。
4.返回这个新对象,所以构造函数里不需要return。