Object.getPrototypeOf(obj)
और obj.constructor.prototype
के बीच कोई अंतर है? या ये दोनों एक ही बात का संदर्भ दे रहे हैं?ऑब्जेक्ट.getPrototypeOf() जावास्क्रिप्ट में Object.constructor.prototype के समान है?
9
A
उत्तर
9
नहीं
यह रिटर्न आंतरिक [[Prototype]]
जहां getPrototypeOf
काम करता है का एक उदाहरण है, लेकिन .constructor.prototype
नहीं है मूल्य।
उदाहरण के लिए:
var o = Object.create(null);
Object.getPrototypeOf(o); // null
o.constructor.prototype; // error
var p = {};
var o = Object.create(p);
Object.getPrototypeOf(o); // p
o.constructor.prototype; // Object.prototype
o.constructor.prototype
केवल new ConstructorFunction
या जहां आप मैन्युअल Prototype.prototype.constructor === Prototype
संबंध स्थापित किया है के माध्यम से बनाया वस्तुओं के साथ काम करता है।
2
नहीं। विशेष रूप से, constructor
किसी ऑब्जेक्ट की संपत्ति हमेशा उस पर सेट नहीं होती है जिसे आप "सही" मानेंगे। यह भी ठेठ मूलरूप विरासत परिदृश्यों के लिए विफल रहता है
function F() { }
F.prototype = {
foo: "bar"
};
var obj = new F();
assert.equal(obj.constructor.prototype, Object.prototype);
assert.equal(Object.getPrototypeOf(obj), F.prototype);
:
// G prototypally inherits from F
function G() { }
G.prototype = Object.create(F.prototype);
// or: G.prototype = new F();
var obj2 = new G();
assert.equal(obj2.constructor.prototype, Object.prototype);
assert.equal(Object.getPrototypeOf(obj2), G.prototype);
assert.equal(Object.getPrototypeOf(Object.getPrototypeOf(obj2)), F.prototype);
आप सहायक प्रश्न और उत्तर उतार सकते हैं और अपने प्रश्नों को हल करने वाले उत्तरों को भी स्वीकार कर सकते हैं। यह एसओ को व्यवस्थित करने में मदद करता है और उन लोगों के लिए भी एक छोटा सा इनाम है जो आपकी मदद करते हैं। – hugomg
@missingno उनके प्रश्न अब तक काफी रोचक हैं ... –
@ imeimeidas: वह अभी भी "0%" बॉयलरप्लेट टिप्पणी के योग्य है हालांकि: पी – hugomg