क्या जावास्क्रिप्ट क्लास के कन्स्ट्रक्टर में विनाशकारी असाइनमेंट का उपयोग करना संभव है जैसे कि आवृत्ति चर असाइन करने के लिए सामान्य चर के लिए आप इसे कैसे कर सकते हैं?क्या जावास्क्रिप्ट कन्स्ट्रक्टर में इंस्टेंस/सदस्य चर को नष्ट करना संभव है?
निम्न उदाहरण काम करता है:
var options = {one: 1, two: 2};
var {one, two} = options;
console.log(one) //=> 1
console.log(two) //=> 2
लेकिन मैं काम करने के लिए निम्नलिखित की तरह कुछ नहीं मिल सकता है:
class Foo {
constructor(options) {
{this.one, this.two} = options;
// This doesn't parse correctly and wrapping in parentheses doesn't help
}
}
var foo = new Foo({one: 1, two: 2});
console.log(foo.one) //=> I want this to output 1
console.log(foo.two) //=> I want this to output 2
मैं और अधिक लगता है:
आप उदाहरण के लिए सभी अपने विकल्पों को लागू करना चाहते हैं, तो आप destructuring बिना
Object.assign
इस्तेमाल कर सकते हैं:दूसरा एक
Object.assign
और destructuring का उपयोग करता है सामान्य सवाल यह है कि क्या एक विनाशकारी असाइनमेंट फॉर्म है जो किसी ऑब्जेक्ट प्रारंभकर्ता के बजाय किसी मौजूदा ऑब्जेक्ट पर गुण बनाने के लिए प्रदान करता है। – Pointyवैसे भी हमेशा 'ऑब्जेक्ट.साइन (यह, विकल्प) है; ' – Pointy
यह उल्लेखनीय है कि आप कन्स्ट्रक्टर के बाहर भी उसी वाक्यविन्यास को लागू कर सकते हैं। दिए गए दो ऑब्जेक्ट्स हैं: 'ओ ओ = {ए: 1, बी: 2}, पी = {}; '। कम जटिल 'पी' के लिए डीकनस्ट्रक्चर केक की शांति है: '({b: p.b} = o); '' p' के लिए ऑब्जेक्ट {b: 2} 'उत्पन्न करता है। – ftor