什么是构造函数
1、构造函数首字母大写(不是必须,但是还是要按照规范首字母大写)
2、用this来构造它的属性以及方法
3、需要使用new关键字来调用,普通函数直接调用
function Person(name, age){
this.name = name;
this.age = function(){
return age;
}
}
//构造函数使用
let person = new Person('a', 10);//this指向person,在new关键字调用时会创建一个新的空间,每当创建实例时函数体内部this都会指向当前
console.log(person);//构造函数会马上创建一个新对象,并将该新对象作为返回值返回
//普通函数使用
let person = Person('b', 20);//this指向window
console.log(person);//没有返回值,所以为undefined
执行过程
1、在堆内存中创建新对象
2、把this设置为新对象
3、逐个执行函数中的属性和方法
4、将新对象this作为返回值
生成对象的方式包括两种:对象字面量和构造函数。
对象字面量
//创建对象并添加属性和方法
let person = {
name: '人',
age: function(){
return 20;
}
};
//也可以先定义一个"空对象",然后在添加属性和方法
let person = {};
person.name = '人';
person.age = function(){
return 20;
}
注意:"空对象"是一个没有自有属性的对象,{}对象会从Object.prototype继承属性和方法。
网友评论