我正在尝试提高我的 JS 技能,并且我已经将一堆代码重写为命名空间对象文字(我认为。)但是现在我遇到了一个与“this”相关的问题。帮我理解?
这是缩写代码。
var MYAPP = {
init: function(){
$(document).on("click",".showLove", MYAPP.showLove);
},
showLove: function(){
var thisId = MYAPP.findId();
$.post(//// do AJAXy stuff using thisId);
},
findId: function(){
var thisClass = $(this).attr('class');
var thisIdPos = thisClass.indexOf("id-")+3;
var thisId = thisClass.substr(thisIdPos, 3);
return thisId;
}
}
所以我相信你可能看到了这个问题。在 findId 函数中 $this 是未定义的,我得到一个错误。早些时候,我在 showLove 中有 findId 逻辑,一切正常。我将 findId 逻辑移到它自己的方法中,因为它在几个不同的地方使用。
所以让我问这个 -> 为什么 $(this) 指向 'showLove' 中的正确元素 .. 但不在 'findId' 中?由于从“showLove”内部调用“findId”,它不应该访问相同的变量,包括$(this)吗?这是我的第一个“自我=这个”情况吗?
我知道这是一个基本问题,但如果有人可以帮助我理解,我会......呃......'showLove'。