所以我正在尝试做一个简单的测试,看看addEventListener是否可以到达我的对象内的方法..到目前为止,没有bueno。任何人都可以帮助解释原因吗?据我所知,当我点击时,它正在寻找DOM中的方法。我尝试使用绑定但没有任何反应。这样做,至少我得到一个错误。猜猜我没有正确链接? 请帮助:(
The Error ----> Uncaught TypeError: undefined is not a function testing.js:12
(anonymous function)
var userOne = function(){
this.go = function(){
alert("hello");
};
}
unction getEle(what){
return document.getElementById(what);
}
function eventClick(id,func){
return getEle(id).addEventListener("click", func);
}
eventClick("starter",function(){userOne.go();}); //is line 12
答案 0 :(得分:-1)
您需要返回函数引用而不是调用它
eventClick("starter",function(){return userOne.go;});
请注意添加return语句并删除括号。或
eventClick("starter",userOne.go);
你的括号调用函数,没有它,你会得到函数的引用。
编辑:
userOne是作为构造函数创建的,因此您还需要进行两项更改:
`
var UserOne = function(){
this.go = function(){
alert("hello");
};
}
var userOne = new UserOne();
`