var Person = function() {
this.name = "Jay";
}
Person.prototype.getName = function() {
return this.name;
}
var jay = new Person();
console.log(jay.getName()); // Jay
console.log(Person.prototype); // { getName: [Function] }
当我致电new Person()
时,我认为它将jay's
内部[[prototype]]
属性设置为Person.prototype
对象。因此,我了解当我尝试访问不存在getName
之类的属性时,它会检查对象的[[prototype]]
Person.prototype
是否为getName。如果我错了,请纠正我。
我感到困惑的是Person.prototype
对象如何从jay
访问this
?据我所知this
引用了调用该方法的对象,Person.prototype
而不是jay
,并且此对象不包含name
属性。
答案 0 :(得分:1)
你感到困惑"定义方法的地方"用"执行该方法的对象。"它是在Person.prototype上定义的,但是在该特定对象上调用该方法。