Как мне обратиться к фактическому «this» в обратном вызове жирной стрелки CoffeeScript?
Название говорит само за себя. Когда я использую жирную стрелку в CoffeeScript, она сохраняетthis
сначала перед вызовом функции. Например:
class myClass
constructor: ->
element = $ "#id"
element.click ->
@myMethod(@value)
return
return
myMethod: (c)->
window.console.log(c)
return
даст
var myClass;
myClass = (function() {
function myClass() {
var element;
element = $("#id");
element.click(function() {
this.myMethod(this.value);
});
return;
}
myClass.prototype.myMethod = function(c) {
window.console.log(c);
};
return myClass;
})();
Теперь в строке № 8 JavaScript,this.myMethod
неправильно. В этой областиthis
относится кelement
вместо класса.MyClass
Однако, если в строке # 4 CoffeeScript, я заменяюelement.click ->
отelement.click =>
строка # 8 в JavaScript станет_this.myMethod(_this.val)
гдеthis
ссылка на myClass хранится в_this
перед вызовом функции. Но_this.value
неопределен, и даже если бы он был определен, объект I 'Я пытаюсь получить доступ здесьelement
(который упоминается фактическимthis
ключевое слово в области действия этой функции).
Как бы получить доступ к фактическимthis
сейчас?