Erhaは、呼び出し、適用、バインドの類似点と相違点を知らなかったと聞きました。患者のゴールデンレトリバーが説明を始めました(要点のみ)
1.呼び出し:栗:
var obj = {
name: 'call' };
var Fn = function (name){
return name+this.name }
console.log(Fn.call(obj,obj.name)) //callcall
最初のパラメーター:関数のこのポイントを変更します
。2番目のパラメーター:パラメーターを文字列の形式で渡します(複数のパラメーターはコンマで区切られます)
2.適用:栗
var arr = [1,2,3,4,5,1000000000];
var Fn = function(){
for(let i in arguments){
console.log(arguments[i])
}
}
Fn.apply(arr,arr) //1,2,3,4,5,1000000000
最初のパラメーター:関数のこの点を変更します
。2番目のパラメーター:パラメーターを文字列の形式で渡します(パラメーターは配列の形式で、数値はパラメーターの長さに等しい)
3. bing:栗
var obj = {
name: 'bind' };
var Fn = function (name){
return name+this.name }
console.log(Fn.bind(obj,obj.name)()) //bindbind
最初のパラメーター:関数のこのポイントを変更します
。2番目のパラメーター:パラメーターをストリングの形式で渡し(複数のパラメーターはコンマで区切られます)
、括弧を追加します。バインドは自己起動パラメーターではないため、手動で呼び出す必要があります