var A = {};
var B = Object.create(A);
var C = Object.create(B);
A.isPrototypeOf(C);//returns true
C.isPrototypeOf(A);//returns false
In the above code I'm not understanding the reason behind the result of being false in C.isPrototypeOf(A);
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
                        C is "descended" from B which is "descended" from A. How could C be the prototype of A?
As C is ultimately inheriting from A, and A gets nothing from C, then it is false that "C is the prototype of A"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With