Как вызвать ключ объекта внутри обратного вызова?

Как я могу получить переменную в обработчике функции obj? Без ссылки на objв MyClass.

    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) (метод подчеркивания) тоже не подходит. Переопределение перерыва в Base.js.

5
задан Gabriel Gartz 4 April 2012 в 13:45
поделиться