使用绑定后访问原型

时间:2015-03-14 20:20:21

标签: javascript

我注意到在对象上使用bind时,您将失去访问原型的能力。

function Foo(obj) {
    this.fields = obj;
}

function Make(obj) {
    return Foo.bind(Foo, obj); 
}

var Test = Make({
    name: 'Jeff' 
});

console.log(Test.prototype);

以下是不使用bind的相同示例:

function Foo(obj) {
    this.fields = obj;
}

function Make(obj) {
    return Foo; 
}

var Test = Make({
    name: 'Jeff' 
});

console.log(Test.prototype);

有什么方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

所以从文档判断。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind

绑定将函数绑定到特定对象,以便始终使用该对象内的变量。因此,当您在示例中调用console.log时,您将记录函数Test的原型。不是对象测试。所以你得到了不确定。

为了得到你想要的对象,试试这个:

console.log(new Test())