JSでthisの指す二つの方法を変える.


JSでthisの指す二つの方法を変える.
this
thisはjavascriptのキーワードです.関数の使用によって、thisの値が変わります.しかし、一つの原則があります.つまり、thisは関数を呼び出す対象を指します.thisは現在の使用者を指していますが、他の方法でその方向を変えることもできます.以下では、thisの方向を変える2つの方法を紹介します.
1.cal()
call(thisObj[,arg 1[,arg 2]]の最初のパラメータは、thisのオブジェクトを変更するための必須パラメータです.その後のパラメータは、呼び出された関数に従ってパラメータに入る必要があるかどうかを例に挙げます.
    var name = 'hanmeimei';
        function fn() {
     
            console.log(this.name);//  this    window  name,    hanmeimei
        }
        fn();//hanmeimei
        var obj = {
     
            name: "lilei",
            fn: function () {
     
                console.log(name);
            }
        }
        obj.fn();//        window  name   hanmeimei
        fn.call(obj);// this     obj  name     lilei
call()の参加例:
var name = 'hanmeimei';
	function fn(x, y) {
     
            console.log(this.name, x, y);
        };
        var obj = {
     
            name: 'lilei',
            say: function () {
     
                console.log(name);
            }
        }
        say.call(obj, 'one', 'two');//  lilei one two   call()   x,y   one two
2.appy()
apply(thisObj[,argAray])とcall()の同じ最初のパラメータは、this指向のオブジェクトを変更するための必須パラメータです.以降のパラメータは、呼び出し関数に従ってパラメータを入力する必要がありますか?applyの役割はcallと同じで、違っているのは伝来の形です.applyは、パラメータ例を配列で伝える必要があります.
var name = 'hanmeimei';
	function fn(x, y) {
     
            console.log(this.name, x, y);
        };
        var obj = {
     
            name: 'lilei',
            say: function () {
     
                console.log(name);
            }
        }
        say.apply(obj, ['one', 'two']);//  lilei one two   appl()   x,y   one two
以上、thisの方向を変えるための二つの方法です.