मैं पढ़ रहा हूं कि आप जेएस नहीं जानते: ES6 & परे और मुझे Symbol.species अनुभाग में इस स्निपेट का सामना करना पड़ा।इस स्निपेट में यह क्या करता है?
class Cool {
// defer `@@species` to derived constructor
static get [Symbol.species]() { return this; }
again() {
return new this.constructor[Symbol.species]();
}
}
class Fun extends Cool {}
class Awesome extends Cool {
// force `@@species` to be parent constructor
static get [Symbol.species]() { return Cool; }
}
var a = new Fun(),
b = new Awesome(),
c = a.again(),
d = b.again();
c instanceof Fun; // true
d instanceof Awesome; // false
d instanceof Cool; // true
यह समारोह Symbol.species की तरह लगता है {लौट कुछ} हमेशा एक निर्माता समारोह लौटना चाहिए। लेकिन इस फ़ंक्शन की पहली उपस्थिति में: static get [Symbol.species]() { return this; }
मैं उलझन में हूं क्योंकि मुझे हमेशा लगता है कि यह एक कन्स्ट्रक्टर फ़ंक्शन के बजाय ऑब्जेक्ट होना चाहिए। क्या आप तथ्यों को स्पष्ट करने में मेरी मदद कर सकते हैं?
और लगभग return new this.constructor[Symbol.species]();
, यह यहां क्या संदर्भित करता है?