Javascript 无法访问\uu proto上的Getter方法__

Javascript 无法访问\uu proto上的Getter方法__,javascript,prototype,Javascript,Prototype,我在学习Javascript的原型,了解了很多关于它们的用法。但我对以下几点感到困惑,即它是如何不起作用的 function Employee(name) { this.name = name; } Employee.prototype.code = "SIMPLE"; Employee.prototype.getName = function() { return this.name; } var a = new Employee("Manish"); var b = ne

我在学习Javascript的原型,了解了很多关于它们的用法。但我对以下几点感到困惑,即它是如何不起作用的

function Employee(name)
{
    this.name = name;
}

Employee.prototype.code = "SIMPLE";
Employee.prototype.getName = function()
{
    return this.name;
}

var a = new Employee("Manish");
var b = new Employee("Vikash");

a.__proto__.code // SIMPLE
a.__proto__.getName() // Undefined
a时,为什么我们不能在
\uuuuuu proto\uuuuuu
上访问函数。当调用函数时,prototype=Employee.prototype
返回true。

上下文(也称为this)在javascript中确定。因此,这里:

a.__proto__.getName()
上下文是一个..uuuu proto uuuuuu,它没有name属性,因此返回undefined。在这里:

a.getName()
调用getName时,上下文是a,而a有一个名称…

调用函数时,上下文(也称为this)在javascript中确定。因此,这里:

a.__proto__.getName()
上下文是一个..uuuu proto uuuuuu,它没有name属性,因此返回undefined。在这里:

a.getName()
您在上下文为a的情况下调用getName,而a有一个名称…

您可以像预期的那样访问
\uuuu proto\uuuu
对象上的函数-但是您得到这种行为是因为当您以这种方式调用它时,您失去了与
this
的绑定,因此函数不会返回您预期的结果。
this
的值由调用上下文决定。为了进行试验,您可以尝试按如下方式添加绑定:

a.__proto__.getName.bind(a)()
// Manish
// or
a.__proto__.getName.call(b)
// Vikash
您可以像预期的那样访问
\uuuu proto\uuuu
对象上的函数,但是您会得到这种行为,因为当您以这种方式调用它时,您失去了与
this
的绑定,因此函数不会返回您预期的结果。
this
的值由调用上下文决定。为了进行试验,您可以尝试按如下方式添加绑定:

a.__proto__.getName.bind(a)()
// Manish
// or
a.__proto__.getName.call(b)
// Vikash

\uuuu proto\uuuu
不是一项功能。不要用它…我知道这是令人沮丧的。但是为什么它会这样呢?您不是从
员工
返回
这个
,所以应该是undefined@joel不,那是一个构造器。哎呀,我完全忽略了
新的
\uuuuuuuuuuuuuuu
不是一个特性。不要用它…我知道这是令人沮丧的。但是为什么它会这样呢?您不是从
员工
返回
这个
,所以应该是undefined@joel不,那是一个构造函数。哦,我完全忽略了
新的
,换句话说
这个
将是
之前的任何东西。换句话说
这个
将是
之前的任何东西。