2010-10-21 18 views
17

एक परियोजना के लिए एक डेवलपर के लिए हमें इस के समान कोड के साथ एक .js फाइल भेजी:जावास्क्रिप्ट में एकाधिक असाइनमेंट? [ए, बी, सी] = [1, 2, 3] क्या करता है; क्या मतलब है?

var myList = [1,2,3]; 
var a,b,c; 

[a,b,c] = myList; 

यह ओपेरा 10.30 में काम करता है, फ़ायरफ़ॉक्स 3.6.x लेकिन यह ओपेरा 10.60 और क्रोम के लिए ठीक नहीं है।

यह सिर्फ जिज्ञासा है, क्या आपके पास कोई संदर्भ या लिंक है जो कहता है कि यह कोड जेएस/ईसीएमए मानक के अनुरूप है या नहीं?

आपको क्या लगता है?

+0

मैं खोजने के लिए कि सुविधा डेस्कटॉप क्रोम क्रोम संस्करण के बाद से 49 (https करने के लिए शुरू किया गया है खुश हूँ: //www.chromestatus .com/सुविधा/4588790303686656)। मैंने इसे अपने क्रोम एक्सटेंशन कोड https://github.com/chuan6/webXi/commit/8283ea713ea5c8c050750b5cd64c6f922817f727#diff-b227432cc34ef4d8e3d6af1fcd6b24f5R86 में सत्यापित कर लिया है। – leo

+1

यदि कोई यहां सोच रहा है, तो आप वही प्रभाव के साथ 'var [a, b, c] = myList;' कर सकते हैं। – arekolek

उत्तर

2

ओपेरा के पुराने "futhark" जावास्क्रिप्ट इंजन के लिए इसका समर्थन था, लेकिन इसे नए इंजन "कारकन" में गिरा दिया गया था, क्योंकि यह गैर-मानक था, वेब पर आवश्यक नहीं था, और नए को जटिल करेगा और बहुत तेजी से कार्यान्वयन।

1

यहां इस विषय पर एक अपडेट है: JavaScript version 1.7 के रूप में, विनाशकारी असाइनमेंट सभी प्रमुख ब्राउज़रों द्वारा समर्थित हैं: ब्राउज़र संगतता here देखें।

विनाशकारी असाइनमेंट सिंटैक्स एक जावास्क्रिप्ट अभिव्यक्ति है जो विभिन्न चरों में सरणी, या वस्तुओं से गुणों को अनपैक करना संभव बनाता है।

- MDN's documentation

तो तुम कर सकते हैं:

let a, b; 
[a, b] = ["Hello, "World"]; 

console.log(a); // "Hello" 
console.log(b); // "World" 
संबंधित मुद्दे