var Person = function(name){
this.name = name;
}
Person.prototype.sayHello = function() {
console.log('hello ' + this.name);
}
var p1 = new Person('HANMEI');
p1.sayHello();
- 创建一个类的实例
创建一个空对象obj,把这个空对象的_proto_
设置为Person.prototype
- 初始化实例
构造函数Person被传入参数并调用,关键字this指向该obj - 返回实例obj
new的实现
function New(F){
var obj = {'__proto__': F.prototype}; /*第一步*/
return function() {
F.apply(obj, arguments); /*第二步*/
return obj; /*第三步*/
}
}