徹底理解call()方法、apply()方法和bind()方法
javascript中的每一個作用域中都有一個this對象,它代表的是調用函數的對象。
在全局作用域中,this代表的是全局對象(在web瀏覽器中指的是window)。
如果包含this的函數是一個對象的方法,this指向的就是這個對象。因此在上面例子中就不用直接寫對象的名字,而是使用this代替它,例如:
下面這個例子中,我們直接使用person.name,這種做法會增加方法與對象之間的耦合度(它們之間的依賴性變強了)。這樣寫是有問題的 ,如果我們的變數名修改了,我們必須同時修改方法中的變數名。幸運的是,JavaScript給我們提供了解決這個問題的方法。
1.改變this
this通常是被自動賦值的,但是我們可以改變this的指向。JavaScript給我們提供了 3 中 函數方法 來改變this的指向。
2.call()方法
這個方法的第一個參數表示this指向的對象,後面的所有參數都是函數的參數。例如:
3.apply()方法
這個方法和call方法的作用都是相同的,只不過在傳遞參數時候,call方法可以傳遞多個參數,而apply方法只能傳遞一個方法,並且要求是一個數組。
4.bind()方法
bind()方法第一個參數是我們希望函數中this指向的對象,後面的參數是我們希望給函數的參數綁定的值。
文章摘自博客
中公優就業 幫你成就職業夢:
IT教育專業培訓:https://www.ujiuye.com/
IT職業在線教育:https://xue.ujiuye.com/


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