通常、呼び出しthis
は機能します。しかし、私は別のコンテキストでメソッドを呼び出しているのでthis
、「親」オブジェクトではなくそのコンテキストを参照しています。
コードは次のとおりです。
var someConfig = {
things: [
{
attr1: 'foo',
attr2: 'bar',
action: function() {
console.log(this);
}
}
]
}
function Constructor(config) {
var self = this;
self.name = 'test';
self.things = config.things;
$.each(self.things, function(i, thing) {
thing.action();
});
}
var obj = new Constructor(someConfig);
console.log(obj);
ここに jsfiddle があります。目標は、コンソールにある両方のオブジェクトを同じにすることですが、メソッドthis
のコンテキストでは、コンストラクターではなく、属している元のオブジェクトを返します。action
action
私が考えることができる唯一のことはに渡すことですがself
、action
もっと良い方法があると思います。