为什么a.prototype == b.prototype
会评估为true
?我误解了什么?
var a=new A();
var b=new B();
function A(){};
function B(){};
console.log (a instanceof A);
console.log(b instanceof A);
console.log(a.prototype== b.prototype);
答案 0 :(得分:3)
A
和B
的实例分别a
和b
没有属性prototype
。因此,当您检查a.prototype == b.prototype
时,您基本上正在执行undefined == undefined
(true
)。
您只需记录a.prototype
即可查看,它将返回undefined
。
但是A
和B
确实有原型,它们是不同的:
var a = new A();
var b = new B();
function A() {};
function B() {};
console.log(A.prototype == B.prototype);