メソッドを変数に代入したときの注意点 : JavaScript

Pocket

下記のように変数にメソッドを代入するとthisは変更される。

name = 'global';
var o = {
    name: 'foo',
    foo: function() {
        console.log(this.name);
    }
};

o.foo(); // object
var bar = o.foo;
bar(); // global  ←予想と異なった
bar.apply(o); // object

コメント

No comments yet.

コメントの投稿

改行と段落タグは自動で挿入されます。
メールアドレスは表示されません。