Javascript "this" 正在改变调用事件

Javascript "this" is changing in invoking event

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" 按预期工作.

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 ?

因为事件侦听器绑定到元素(this 事件侦听器内部将引用触发事件的元素)。当然,除非事件侦听器使用 .bind.

明确地 绑定到另一事物