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