0

コンテキストをローカル変数に再割り当てせずに、外部関数のコンテキストを参照することは可能ですか?

例えば:

var objects = [];

// populate objects

Foo.prototype.bar = function() {
    var outerObject = this;
    $.each(objects, function () {
        this.someMethod(outerObject);
    });
};
4

1 に答える 1

1

.bindを使用できます。それ以外の場合はthis、ローカル変数で保存する必要があります。

Foo.prototype.bar = function() {
    var outerObject = this;
    var inner = (function () {
        // do something with outerObject
        console.log(this === outerObject);
    }).bind(this);
};

アップデート:

あなたの場合:

var objects = [];

// populate objects

Foo.prototype.bar = function() {
    $.each(objects, (function (obj) {
        this.someMethod(obj);
    }).bind(this));
};
于 2012-10-09T15:39:49.043 に答える