'原型'对象可以访问新创建的对象'这个'?

时间:2014-07-06 07:09:44

标签: javascript

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属性。

1 个答案:

答案 0 :(得分:1)

你感到困惑"定义方法的地方"用"执行该方法的对象。"它是在Person.prototype上定义的,但是在该特定对象上调用该方法。