खोज…
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