小编J R*_*ttz的帖子

期待JavaScript对象中正确的调用上下文(this)

考虑一下:

window.onload = function () {
    myObj.init();
};

var myObj = {
    init: function () {
        console.log("init: Let's call the callMe method...");

        //callMe is not defined...
        callMe();

        //Works fine!
        this.callMe();
    },

    callMe: function () {
        console.log('callMe');
    }
};
Run Code Online (Sandbox Code Playgroud)

由于init函数以这种方式调用(myObj.init),我希望this在init函数中成为myObj.如果是这种情况,为什么callMe功能失败?如何在callMe不使用init主体中的this上下文的情况下调用该函数?(实际上,this通过函数反复调用对象方法太烦人了.那么拥有单个对象有什么意义呢?)

我想知道如何解决这个问题,以便使用上面代码中的第一个调用来调用callMe方法?

javascript scope this

4
推荐指数
1
解决办法
660
查看次数

标签 统计

javascript ×1

scope ×1

this ×1