call apply bind方法及其應用

2021-10-16 15:38:46 字數 856 閱讀 5702

1、call()方法可以呼叫乙個函式

functionfn(

) fn.

call()

//window

2、call()方法可以改變函式的this指向

var o =

function

fn(x, y)

}//利用call方法後this指向了o這個物件

fn.call

(o,1,2

)

call方法總結:

var o =

function

fn(x, y, z)

//fn(1, 2, 3) //6

fn.(o,[1,

2,3]

)//利用call方法後this指向了o這個物件

bind() 方法不會呼叫函式,但是能改變函式內部this 指向,返回的是原函式改變this之後產生的新函式;如果只想改變this的指向但是不想呼叫這個函式,此時就可以使用bind這個方法

var o =

function

fn(x, y)

}var f = fn.

bind

(o,1,2

)//此處的f是bind返回的新函式 但是bind本身並不會呼叫這個函式,只是改變了它的this指向f(

)//呼叫新函式 this指向的是物件o 引數使用逗號隔開

bind方法總結:

1、共同點 : 都可以改變this指向

2、不同點:

bind 不會呼叫函式, 可以改變函式內部this指向

3、應用場景

call, apply, bind方法詳解

function a x,y var c a.call c,5,6 5 6 arguments 5,6 再看例子 function person age,male var person1 person.call person1,20,female person1 var person var per...

call apply bind方法詳解

var name window var newthis function showname info1,info2 showname a b 輸出 window a b 通過bind改變this指向 var newshowname showname.bind newthis,hello world ...

call apply bind 方法用法測試

call 1 use strict function test xx,yy let a 呼叫test方法,將 a 放到方法裡當作 this。所以裡列印a才會有值的。test.call a,10,20 console.log a 3 use strict function test xx,yy let...