原型链如何工作?

时间:2014-11-30 18:02:53

标签: javascript

var A = {};
var B = Object.create(A);
var C = Object.create(B);
A.isPrototypeOf(C);//returns true
C.isPrototypeOf(A);//returns false

在上面的代码中我不理解C.isPrototypeOf(A);

中假结果背后的原因

2 个答案:

答案 0 :(得分:13)

var A = {}; // A inherits Object
var B = Object.create(A); // B inherits A inherits Object
var C = Object.create(B); // C inherits B inherits A inherits Object

// Does C inherit A?
A.isPrototypeOf(C); // true, yes
// C inherits A because    B inherits A    and    C inherits B

// Does A inherit C?
C.isPrototypeOf(A); // false, no
// A only inherits Object

答案 1 :(得分:3)

C"后来"来自B,这是"后来"来自AC怎么可能成为A的原型?

由于C最终是从A继承的,而AC中得不到任何内容,那么" C是错误的A"

的原型