我注意到在对象上使用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);
有什么方法可以解决这个问题吗?
答案 0 :(得分:0)
所以从文档判断。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
绑定将函数绑定到特定对象,以便始终使用该对象内的变量。因此,当您在示例中调用console.log时,您将记录函数Test的原型。不是对象测试。所以你得到了不确定。
为了得到你想要的对象,试试这个:
console.log(new Test())