【发布时间】:2017-12-26 11:02:00
【问题描述】:
我之前是通过继承的概念,现在的情况是让我们有和空的构造函数
function Constructor(/* i am an empty function */ );
现在我们要为 Object.prototype 添加一个属性,并创建一个构造函数的实例
Object.prototype.game = "hello i am a game";
let a = new Constructor();
a.game();
现在我们知道输出将是 "hello i am a game"。因此 var a 继承自 Object 和 因此 Constructor 函数继承自 Object 因此
Constructor.__proto__ === Object.prototype
必须是true,而不是为什么会出现false
【问题讨论】:
-
__proto__和prototype都是对象。所以你不能在他们身上使用=== -
您的示例代码不起作用(
Uncaught SyntaxError: Unexpected token ;和Uncaught TypeError: a.game is not a function),那么您到底在问什么? -
“继承自”与“直接继承自”不同。因此,不要测试
Object.getPrototypeOf(a) == b(顺便说一句,不要使用已弃用的__proto__!),您需要执行遍历整个链的b.isPrototypeOf(a)
标签: javascript node.js oop inheritance prototype