私は時間と関数とメソッドのバインディングを理解しようとしています。私はインターネット上の "束縛"についてのいくつかの記事を見てきましたが、私はそれらを簡単に理解することはできません。誰かが私にそれをもっとはっきりと説明できることを願っています。
私はこのJavaScriptコードがあります。メソッドと関数バインドと混同しました
function Foo(name) {
this.name = name;
}
function sayHello() {
console.log('Hello ' + this.name);
}
var foo = new Foo('Jack');
var substFunc = foo.sayHello.bind(foo);
substFunc();
を私はので、私は「こんにちは、ジャック」を表示するための方法としてそれを使用することができFoo()
に拘束されることにsayHello()
機能をしたいが、それはメッセージを失敗し、表示されましたコンソール上:
Uncaught TypeError: Cannot read property 'bind' of undefined(...)
バインディングを理解するには、まずスコープを理解する必要があります。バインドは基本的に "this"の範囲を変更します。私はそこから始めることを提案します。 :) – alexr101
チップのおかげで。私はちょうど初心者です – jst16