當前位置:
首頁 > 知識 > 徹底理解call()方法、apply()方法和bind()方法

徹底理解call()方法、apply()方法和bind()方法

徹底理解call()方法、apply()方法和bind()方法

javascript中的每一個作用域中都有一個this對象,它代表的是調用函數的對象。

在全局作用域中,this代表的是全局對象(在web瀏覽器中指的是window)。

如果包含this的函數是一個對象的方法,this指向的就是這個對象。因此在上面例子中就不用直接寫對象的名字,而是使用this代替它,例如:

徹底理解call()方法、apply()方法和bind()方法

下面這個例子中,我們直接使用person.name,這種做法會增加方法與對象之間的耦合度(它們之間的依賴性變強了)。這樣寫是有問題的 ,如果我們的變數名修改了,我們必須同時修改方法中的變數名。幸運的是,JavaScript給我們提供了解決這個問題的方法。

徹底理解call()方法、apply()方法和bind()方法

1.改變this

this通常是被自動賦值的,但是我們可以改變this的指向。JavaScript給我們提供了 3 中 函數方法 來改變this的指向。

2.call()方法

這個方法的第一個參數表示this指向的對象,後面的所有參數都是函數的參數。例如:

徹底理解call()方法、apply()方法和bind()方法

3.apply()方法

這個方法和call方法的作用都是相同的,只不過在傳遞參數時候,call方法可以傳遞多個參數,而apply方法只能傳遞一個方法,並且要求是一個數組。

徹底理解call()方法、apply()方法和bind()方法

4.bind()方法

bind()方法第一個參數是我們希望函數中this指向的對象,後面的參數是我們希望給函數的參數綁定的值。

徹底理解call()方法、apply()方法和bind()方法

文章摘自博客


中公優就業 幫你成就職業夢:

IT教育專業培訓:https://www.ujiuye.com/

IT職業在線教育:https://xue.ujiuye.com/

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 IT優就業 的精彩文章:

深入理解計算機系統——信息的存儲和表示
10種常見的軟體架構模式
「全面總結」js獲取元素位置大小
電商大牛親手診斷,運營難題一點就透,深挖月入百萬秘密!
我遇到了人生中最好的教師節

TAG:IT優就業 |