js中的call和apply方法

js中的函數對象有定義時上下文,運行時上下文,上下文是可以改變的 這些概念。

舉個例子

function a(c){

alert(c)

alert(this.b)

}

d={b:'哈哈'}

//如果直接運行a();那麼a函數是用window調用的,裏面的this指window,window對象當然沒有b屬性了,但是下面的函數將a函數運行時的上下文替換成了d對象,也就是d對象調用a函數,那麼this就指代d對象,後面是傳入的參數。

a.call(d,‘嘿嘿’);

call和apply的唯一不同就在於,call是按照順序進行傳參,而apply要將參數封裝成一個數組進行傳參,所以當參數個數不定時,要用apply

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章