JSでthisの指す二つの方法を変える.
7557 ワード
JSでthisの指す二つの方法を変える.
this
thisはjavascriptのキーワードです.関数の使用によって、thisの値が変わります.しかし、一つの原則があります.つまり、thisは関数を呼び出す対象を指します.thisは現在の使用者を指していますが、他の方法でその方向を変えることもできます.以下では、thisの方向を変える2つの方法を紹介します.
1.cal()
call(thisObj[,arg 1[,arg 2]]の最初のパラメータは、thisのオブジェクトを変更するための必須パラメータです.その後のパラメータは、呼び出された関数に従ってパラメータに入る必要があるかどうかを例に挙げます.
apply(thisObj[,argAray])とcall()の同じ最初のパラメータは、this指向のオブジェクトを変更するための必須パラメータです.以降のパラメータは、呼び出し関数に従ってパラメータを入力する必要がありますか?applyの役割はcallと同じで、違っているのは伝来の形です.applyは、パラメータ例を配列で伝える必要があります.
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の方向を変えるための二つの方法です.