0
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(); //在這種情況下,「this」將指向myObject.hence「this」按預期工作。JavaScript「this」在調用事件中發生變化
document.getElementById(「button2」)。onclick = myObject.myFunction.bind(myObject); //在這種情況下,因爲我們將myObject綁定到myFunction,所以「this」將指向myObject.and然後「this」按預期工作。
document.getElementById(「button1」)。onclick = myObject.myFunction; //在這種情況下,我期望「this」應該指向myObject.But,但我把它看作undefined.why?
因爲簡化,它會在某處調用'onclickCallback()',將'this'設置爲無。 – deceze
如果你在互聯網上搜索,你可以在2分鐘內找到答案。在你的函數開始時將這個上下文保存在任何變量中。你可以使用綁定或呼叫來呼叫你想要的上下文中的函數 –
@deceze _to nothing _ ???我認爲它爲元素設置了這個。 –