在Node.js中运行以下代码(通过repl.it)会产生不一致的结果:
function F() {}
F.__proto__ == Function.prototype
为什么这有时会导致true
,有时会导致false
?有正确的答案吗?
instanceof
Function
。该实例对象具有指向Function.prototype
对象的原型链接。该链接不是固定的,可以在创建对象后更改其原型。 function F() {}
console.log('original F:', Object.getPrototypeOf(F) === Function.prototype);
Object.setPrototypeOf(F, {});
console.log('after prototype change:', Object.getPrototypeOf(F) === Function.prototype);