Javascript 为什么在这个场景中test.elem没有定义?
标题给出了我在使用以下内容时遇到的错误:Javascript 为什么在这个场景中test.elem没有定义?,javascript,jquery,Javascript,Jquery,标题给出了我在使用以下内容时遇到的错误: var test = { elem : undefined, init : function() { console.log("test.init() fired"); elem = $("#id"); console.log("elem assigned to jQuery object"); elem.click(function() { console.log("elem c
var test = {
elem : undefined,
init : function() { console.log("test.init() fired");
elem = $("#id");
console.log("elem assigned to jQuery object");
elem.click(function() { console.log("elem clicked"); });
console.log("elem click handler created");
}
};
test.init();
test.elem.click();
我不明白。如果我运行
test.init()
,其中它为test.elem
赋值,为什么我稍后尝试访问它时它会未定义?您正在init函数内部创建一个名为“elem”的新引用,而不是引用test.elem
在init内部,您需要将元素分配给'this.elem',这样它就会显示:
init : function() {
console.log("test.init() fired");
this.elem = $("#id");
console.log("elem assigned to jQuery object");
this.elem.click(function() {
console.log("elem clicked");
});
console.log("elem click handler created");
}
我真是个白痴。当你知道10个小时后,可能是下班的时候了。是的,我完全搞错了。我在其他地方都是正确的,但忘记了这一点。我工作太久了。谢谢你的第二双眼睛!