JavaScript标头和原型

时间:2018-05-24 12:10:51

标签: javascript

为什么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);

1 个答案:

答案 0 :(得分:3)

AB的实例分别ab没有属性prototype。因此,当您检查a.prototype == b.prototype时,您基本上正在执行undefined == undefinedtrue)。

您只需记录a.prototype即可查看,它将返回undefined

但是AB确实有原型,它们是不同的:



var a = new A();
var b = new B();

function A() {};
function B() {};

console.log(A.prototype == B.prototype);