var myObject = {
myFunction : function (){
var randomizer = Math.random() * 10;
if(randomizer > 5){
this.myGreaterThanFunction();
}else{
this.myLesserThanFunction();
}
},
myGreaterThanFunction: function (){
document.getElementById("result").innerHTML = "randomizer number is greater than 5";
},
myLesserThanFunction: function (){
document.getElementById("result").innerHTML = "randomizer number is less than 5";
}
};
myObject.myFunction(); //在这种情况下"这个"将指向myObject.hence" this"按预期在这里工作。
document.getElementById(" button2")。onclick = myObject.myFunction.bind(myObject); //在这种情况下,当我们将myObject绑定到myFunction然后"这个"将指向myObject。然后"这"按预期工作。
document.getElementById(" button1")。onclick = myObject.myFunction; //在这种情况下,我希望"这个"应该指向myObject.But我得到这个为undefined.why?
答案 0 :(得分:0)
因为事件侦听器绑定到元素(事件侦听器内的this
将引用触发事件的元素)。当然,除非事件监听器使用.bind
显式绑定到另一个事物。