क्यों निम्न सिंटैक्समैं ऑब्जेक्ट की किसी संपत्ति की सीधे संपत्ति का उपयोग क्यों नहीं कर सकता?
{a:1,b:2}.constructor
अमान्य है, जबकि
[1,2].constructor
मान्य है?
क्यों निम्न सिंटैक्समैं ऑब्जेक्ट की किसी संपत्ति की सीधे संपत्ति का उपयोग क्यों नहीं कर सकता?
{a:1,b:2}.constructor
अमान्य है, जबकि
[1,2].constructor
मान्य है?
{a:1,b:2}.constructor
अमान्य वाक्यविन्यास नहीं है, लेकिन यह संदिग्ध है, क्योंकि {}
एक ब्लॉक, या एक वस्तु को दर्शाता है? तो आपको ({a:1,b:2}).constructor
जैसे कोष्ठक के साथ अभिव्यक्ति को असंबद्ध करना होगा। अब जावास्क्रिप्ट जानता है कि आप किसी ऑब्जेक्ट का उपयोग करना चाहते हैं।
console.log({a:1,b:2}.constructor) // works fine
एक लाइन की शुरुआत में वक्र ब्रैकेट के रूप में object literal के बजाय पहचाना जाता है।
यदि आप कंसोल में त्रुटि देखते हैं, तो आप Uncaught SyntaxError: Unexpected token :
देख सकते हैं। इसलिए, त्रुटि कन्स्ट्रक्टर संपत्ति को कॉल करने में नहीं है।
, जब आप कंसोल
{a:1}
जे एस एक label और नहीं संपत्ति a
के साथ एक वस्तु के साथ एक ब्लॉक के रूप में व्याख्या इस में लिखें।
'({a:: 1, बी: 2})।
आप एक संदर्भ में, जहां यह स्पष्ट रूप से एक वस्तु है कि वाक्य रचना का उपयोग करते हैं, तो कोई अस्पष्टता है constructor' – elclanrs