टाइपप्रति में यह तीर परिभाषाएँ?

वोट
2

मैं टाइपप्रति में इस तरह के वस्तु शाब्दिक लिखा है:

var object = {
    message: Say,
    say: () => {
        return this.message;
     }
};

और मैं इस तरह के उत्पन्न जावास्क्रिप्ट मिला:

var object = {
    message: Say,
    say: function () {
        return _this.message;
    }
};

वहाँ नहीं करना चाहिए वापसी कथन से पहले इस तरह लाइन हो:

 var _that = this;

के रूप में मैं तीर समारोह अभिव्यक्ति का उपयोग कर रहा हूँ?

10/10/2012 को 00:00
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
2

=>यहाँ एक खतरा का एक सा है, क्योंकि, गंभीर रूप से, यह है बांधता thisसंलग्न गुंजाइश के लिएthis । सही कोड पीढ़ी में, var _this = this;लाइन चला जाता है ऊपर वस्तु शाब्दिक और अपने sayसमारोह बस रिटर्न undefined

आप केवल कभी उपयोग करना चाहते हैं thisएक में =>अभिव्यक्ति जब आप वास्तव में उल्लेख करने के लिए करना चाहते हैं thisसंलग्नित दायरे में उपस्थित होना होगा। इस विशेष मामले में, आप नहीं है (आप आंतरिक गुंजाइश चाहते this, वस्तु शाब्दिक ही यानी)।

10/10/2012 को 00:25
का स्रोत उपयोगकर्ता

वोट
2

तुम सही हो। यह याद आ रही है:

var _this = this;

यह रिलीज (0.8) के बाद की खोज की है और वर्तमान में डेवलपर शाखा पर तय हो गई है।

नोट: इसके अलावा मुझे लगता है कि आप लिखना चाहते थे

var object = {
    message: "Say",
    say: function () {
        return () => this.message;
    }
};

जो वास्तव में कहते हैं प्रिंट होगा जब उसे चलने के है। देखें: http://wiki.ecmascript.org/doku.php?id=harmony:arrow_function_syntax

10/10/2012 को 00:03
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more