【发布时间】:2019-02-23 11:58:25
【问题描述】:
为什么instanceof操作符在以下两段代码中产生不同的结果,它是如何在幕后工作的?
1>
function MyConstructor() {}
MyConstructor.prototype = {};
var myobject = new MyConstructor();
myobject instanceof MyConstructor
**true**
2> 现在如果我执行以下代码,结果会有所不同:
MyConstructor.prototype = {};
myobject instanceof MyConstructor
**false**
你能解释一下 operator 的实例是如何工作的吗?我了解原型继承在 javascript 中是如何工作的,但我无法理解这个场景。
【问题讨论】:
-
因为
{} !== {} -
@bergi 肯定有。 jsfiddle.net/7phcL3qm。用不同的东西覆盖原型会导致这种行为......
标签: javascript prototype instanceof