new的执行过程:
- 创建一个新的空对象;
- 让 this 指向这个新的对象;
- 该对象继承该函数的原型;
- 执行构造函数里面的代码,给这个新对象添加属性和方法;
- 返回这个新对象(所以构造函数里面不需要return)。
function Person() {
this.name = 'Andy';
this.age = 20;
this.say = function () {
console.log('hello everybody');
}
}
Person.prototype.test = function(){
console.log('test');
};
let p1 = new Person();
console.log(p1.name);//'Andy'
console.log(p1.age);//20
p1.say();//'hello everybody'
p1.test();//'test'