javascript – 如何在回调中调用对象的键?

前端之家收集整理的这篇文章主要介绍了javascript – 如何在回调中调用对象的键?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我怎样才能在obj的处理函数中得到变量?没有参考MyClass中的obj.

    var obj = {
        func: function(){
            var myClass = new MyClass();
            myClass.handler = this.handler;
            myClass.play();        
        },handler: function(){
            //Here i don't have access to obj
            console.log(this); //MyClass
            console.log(this.variable); //undefined
        },variable:true
    };

    function MyClass(){
        this.play = function(){
            this.handler();
        };

        this.handler = function(){};
    };

    obj.func();

如果您使用Base.js或其他类似的oop方式,那么构建需要您.

_.bindAll(obj)(下划线metod)也不合适.它在Base.js中突破了.

最佳答案
仅绑定处理程序方法http://jsfiddle.net/uZN3e/1/

var obj = {
    variable:true,func: function(){
        var myClass = new MyClass();
        // notice Function.bind call here
        // you can use _.bind instead to make it compatible with legacy browsers
        myClass.handler = this.handler.bind(this);
        myClass.play();        
    },handler: function(){
        console.log(this.variable);
    }
};

function MyClass(){
    this.play = function(){
        this.handler();
    };

    this.handler = function(){};
};

obj.func();
​
原文链接:https://www.f2er.com/js/429557.html

猜你在找的JavaScript相关文章