我正在尝试创建一个对象并从其中分配点击处理程序。我意识到我不能按照我想要的方式去做,因为“this”与按钮相关联,而不是对象文字,从而破坏了对函数的访问。
“未捕获的类型错误:对象 # 没有方法‘clearSelection’”
请看下面的小提琴。
这是供参考的代码。在这个阶段它不应该做任何有用的事情,除了说明问题:)
function ThingConstructor(someData) {
var button = $("#someButton");
return {
initialise: function () {
button.click(function () {
// I want "this.clearSelection();" to target the
// "clearSelection" function below.
// Instead, it targets the button itself.
// How can i refer to it?
this.clearSelection();
});
},
clearSelection: function () {
this.populateList($("#stuff"), someData);
$("#adiv").empty();
console.log("clearSelection");
},
populateList: function (var1, var2) {
//do something to a list
}
}
}
$(function () {
var test = ThingConstructor("someData");
test.initialise();
});