इस कोड को देखते हैं ले:अस्थायी मृत क्षेत्र से बाहर चर
<script>
let {foo} = null; // TypeError
</script>
<script>
// Here I want to assign some some value to foo
</script>
पहले स्क्रिप्ट एक destructuring काम के माध्यम से जाने-घोषित करने के लिए foo
प्रयास करता है। हालांकि, null
को नष्ट नहीं किया जा सकता है, इसलिए असाइनमेंट टाइपएरर फेंकता है।
foo = 123; // ReferenceError: can't access lexical declaration `foo' before initialization
और let
चर redeclared नहीं किया जा सकता:
समस्या यह है कि उसके बाद foo
चर घोषित लेकिन अप्रारंभीकृत है, इसलिए यदि 2 लिपि में मैं संदर्भ के लिए foo
प्रयास करते हैं, फेंक देता है
let foo = 123; // SyntaxError: redeclaration of let foo
क्या टीडीजेड से बाहर निकलने का कोई तरीका है, ताकि मैं मूल्यों को आवंटित कर सकूं और उन्हें पढ़ सकूं?
बीटीडब्ल्यू, मैं 'foo' का उपयोग करना चाहता हूं, 'window.foo' जैसे कामकाज नहीं। – Oriol
मुझे लगता है कि पहली स्क्रिप्ट के बारे में कुछ दिलचस्प है जो प्रारंभिकरण की वैधता को आश्वस्त करता है। – Pointy
@Oriol: 'window.foo' [वैसे भी काम नहीं करेगा] (http://stackoverflow.com/q/28776079/1048572) :-) – Bergi