MDN arrow functions का कहना है:
सख्त मोड के साथ संबंध
यह देखते हुए कि this
शाब्दिक है, this
के संबंध में सख्त मोड नियम सिर्फ ध्यान नहीं दिया जाता।
var f =() => {'use strict'; return this};
f() === window; // or the global object
शाब्दिक this
के नियमों सख्त मोड this
नियमों से प्राथमिकता दी जाती।
हम a function's [[ThisMode]]
slot के लिए संभावित मान के मैदान-अंग्रेजी विवरण का परीक्षण करके ES2015 विनिर्देश में आसानी से देख सकते हैं, जो हो सकता है lexical
, strict
, या global
:
को परिभाषित करता है कि कैसे this
संदर्भ के भीतर व्याख्या कर रहे हैं औपचारिक पैरामीटर और समारोह के कोड बॉडी। lexical
का अर्थ है कि this
एक व्याख्यात्मक रूप से संलग्न कार्य के this
मान को दर्शाता है। strict
का अर्थ है कि this
मान फ़ंक्शन के आमंत्रण द्वारा प्रदान किए गए अनुसार बिल्कुल उपयोग किया जाता है। global
का अर्थ है कि undefined
का मान वैश्विक वस्तु के संदर्भ के रूप में व्याख्या किया गया है।
दूसरे शब्दों में, एक फ़ंक्शन का this
व्यवहार या तो सख्त, गैर-सख्त, या शब्दावली हो सकता है। यदि कोई फ़ंक्शन [[ThisMode]]
लेक्सिकल है (जैसा कि यह एक तीर फ़ंक्शन के लिए है), यह this
-setting व्यवहार को निर्धारित करने के उद्देश्य से फ़ंक्शन की सख्त/गैर-सख्त स्थिति अप्रासंगिक प्रस्तुत करता है।
चूंकि आप इसे वैश्विक दायरे में निष्पादित कर रहे हैं (जहां यह 'विंडो 'ऑब्जेक्ट है), और तीर कार्यों में यह' यह 'है, मुझे यह नहीं पता कि इसके बारे में क्या अप्रत्याशित है? – Bergi