javascript中callapply的應用場景_javascript技巧
來源:懂視網
責編:小采
時間:2020-11-27 20:50:06
javascript中callapply的應用場景_javascript技巧
javascript中callapply的應用場景_javascript技巧:在一些jQuery插件中經??吹筋愃?callback.call(xxx,xxx) 雖然看到書上有介紹 說call和apply函數(shù)可以改變作用域,但還是無法非常透徹的理解改變作用域主要是為了解決什么問題,有沒有替代方案,或者 這2個函數(shù)主要為了解決什么問題,應用場景,何時使用最合適
導讀javascript中callapply的應用場景_javascript技巧:在一些jQuery插件中經??吹筋愃?callback.call(xxx,xxx) 雖然看到書上有介紹 說call和apply函數(shù)可以改變作用域,但還是無法非常透徹的理解改變作用域主要是為了解決什么問題,有沒有替代方案,或者 這2個函數(shù)主要為了解決什么問題,應用場景,何時使用最合適
在一些jQuery插件中經??吹筋愃?callback.call(xxx,xxx) 雖然看到書上有介紹 說call和apply函數(shù)可以改變作用域,但還是無法非常透徹的理解改變作用域主要是為了解決什么問題,有沒有替代方案,或者 這2個函數(shù)主要為了解決什么問題,應用場景,何時使用最合適,每次讀到這樣的代碼就暈了,一下子從線性閱讀中跳出去了,感覺有點繞
call和apply的作用很簡單,就是改變上下文,適用場景太多了,雖然有時候只是為了“美觀”,下面幾個是我常用的。
1.
代碼如下:Object.prototype.toString.call(Obj)
用來判斷 Obj 的類型
arguments 雖然和Array 很像,但是他沒有Array的push之類的方法,怎么辦?
Array.prototype.push.call(arguments)
3.Javascript 沒有私有方法的概念,想用閉包實現(xiàn)
差不多就是這個意思,callback的時候,當你希望你的callback中的上下文是當前上下文的時候,也可以用call或者apply,有什么好處呢?
這個時候你的callback 里面的this 就是指代當前上下文。例如一個類Person,然后他的方法 say 有一個callback的參數(shù),如果這個callback是通過普通的括號來執(zhí)行的話,那在這個callback里面執(zhí)行person的其它方法還需要用person.other 來實現(xiàn),但是切換上下文之后,就是this.other搞定~代碼對比如下:
用了call的:
以上所述就是本文的全部內容了,希望大家能夠喜歡。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com
javascript中callapply的應用場景_javascript技巧
javascript中callapply的應用場景_javascript技巧:在一些jQuery插件中經??吹筋愃?callback.call(xxx,xxx) 雖然看到書上有介紹 說call和apply函數(shù)可以改變作用域,但還是無法非常透徹的理解改變作用域主要是為了解決什么問題,有沒有替代方案,或者 這2個函數(shù)主要為了解決什么問題,應用場景,何時使用最合適