トップページ > コンテンツ > プログラミング入門 > Ajax入門 > JavaScript入門 > javascriptのthisについて > bindについて

以下のような場合にtest1.sampleは関数オブジェクトしか渡せないため、
undefinedとなる。そこで、オブジェクトと括り付けるために
bind(括り付けたいオブジェクト名)を利用する。

var class1 = function(x){
       this.x = x;
       this.sample =function() {
          alert(this.x);
       };
};

function test() {
    var test1 = new class1("test1");
    setTimeout(test1.sample,0); //<-undefinedと表示される
    setTimeout(test1.sample.bind(test1),0); //<-test1と表示される
}

尚、オブジェクトと括り付けた関数を即座に実行する場合は、
callやapplyを利用する。

引数固定の場合はcall(),可変引数の場合はapply()を使用する。
具体的には、関数名.apply(オブジェクト等)と記載することで
引数のオブジェクトをthisとした関数実行ができる。
最終更新:2014年07月20日 11:46