खोज…


Var घोषणाओं में जंजीर असाइनमेंट।

एक के हिस्से के रूप कार्य चेनिंग var घोषणा अनजाने वैश्विक चर पैदा करेगा।

उदाहरण के लिए:

(function foo() {    
    var a = b = 0;
})()
console.log('a: ' + a);
console.log('b: ' + b);

में परिणाम होगा:

Uncaught ReferenceError: a is not defined
'b: 0'

उपरोक्त उदाहरण में, a स्थानीय है लेकिन b वैश्विक हो जाता है। इसका कारण = ऑपरेटर के बाएं मूल्यांकन का अधिकार है। तो उपरोक्त कोड वास्तव में के रूप में मूल्यांकन किया

var a = (b = 0);

Var var असाइनमेंट्स का सही तरीका है:

var a, b;
a = b = 0;

या:

var a = 0, b = a;

यह सुनिश्चित करेगा कि a और b दोनों ही स्थानीय चर होंगे।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow