2011-08-15 13 views
5

मैं सच में यकीन है कि मैं क्यों गुमनाम समारोह सीएफ (में परिभाषित)Coffeescript/Javascript चर गुंजाइश

class C 
    constructor:() -> 
    @date = new Date() 

    f:() -> 
    $(document).keydown((e) -> 
     alert(@date) 
    ) 
सका

के संदर्भ से @date (this.date) अलग-अलग करने के लिए पहुँच नहीं है नहीं कर रहा हूँ कोई उस पर टिप्पणी करता है?

उत्तर

9

यह keydown ईवेंट हैंडलर के अंदर क्योंकि हो रहा है, this मूल्य, अपनी वस्तु का उल्लेख नहीं होगा यह डोम तत्व के पास भेजेगा।

उस उद्देश्य के लिए, आप => (fat arrow) का उपयोग कर सकते के लिए, कि माता-पिता this को हैंडलर के this मूल्य बाँध होगा:

class C 
    constructor:() -> 
    @date = new Date() 

    f:() -> 
    $(document).keydown((e) => 
     alert(@date) 
    ) 
संबंधित मुद्दे