第22章.this

7469 ワード

1.このキーワード


対象は状態を表すプロセスと動作を表す方法からなり복합적인 자료구조메서드自分のオブジェクトのプロパティを参照するには、自分の属するオブジェクトを指す識別子を参照できる必要があります.
  • this所属するオブジェクトまたは作成するインスタンスへの自己参照変数.
  • this 바인딩識別子を値に関連付ける
    関数呼び出し方式による動的決定
  • 2.関数の呼び出しとバインド


    このバインド呼び出し関数
    動的に関数の呼び出し方法を決定する
  • 렉시컬 스코프関数定義を評価して、関数オブジェクトの作成時の親スキャンを決定します.
  • this 바인딩関数呼び出し時に決定
  • 1.一般関数の呼び出し

  • 通常はグローバルオブジェクトをバインド
  • オーバーラップ関数、コールバック関数呼び出しのすべての一般関数
  • thatリファレンスを使用!
  • 厳格モード->未定義
  • var value = 1;
    
    const obj = {
        value: 100,
        foo() {
            //콜백함수에 this 바인딩
            setTimeout(function () {
                console.log(this.value);
            }.bind(this), 100);
        }
    };
    
    obj.foo();

    2.呼び出し方法

    const person = {
        name: 'seohee',
        getName() {
            return this.name;
        }
    }
    const another = {
        name: 'jc'
    };
    another.getName = person.getName;
    console.log(another.getName());
    const funcGetName = person.getName;
    console.log(funcGetName());

    3.コンストラクタの呼び出し

    function Circle(rad) {
        this.rad = rad;
    
        this.getDiameter = function () {
            return 2 * this.rad;
        };
    }
    
    const c1 = new Circle(3);
    const c2 = new Circle(9);
    
    console.log(c1.getDiameter());
    console.log(c2.getDiameter());
    new演算子とともに呼び出す必要があります

    4. Function.prototype.apply/call/bindメソッドによる間接呼び出し

  • applyおよびcallメソッドの本質的な機能は、呼び出し関数