2
我正在研究一個JavaScript應用程序,並發現了這種奇怪的行爲。
任何人都可以請向我解釋爲什麼JavaScript instanceof運算符返回true時應該是false?
function BaseClass() {}
function ClassOne() { this.bar = "foo"; }
function ClassTwo() { this.foo = "bar"; }
var base = new BaseClass();
ClassOne.prototype = base;
ClassTwo.prototype = base;
var one = new ClassOne();
var two = new ClassTwo();
one instanceof ClassTwo && two instanceof ClassOne;
// The line above will return true, but i think it should return false,
// because obviously one is not an instance of ClassTwo!
這是真的,雖然T.J.克勞德那天回答了一個問題,詳細解釋了爲什麼這不一定是最好的做法。我會看看我能否找到它。 – Pointy
+1很好的答案。這是一個非常棘手的問題,並發現我以前已經抓住了! –
@Pointy你的意思是[這一個](http://stackoverflow.com/a/11072626)? –