日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js理解 call( ) | apply( ) | caller( ) | callee( )

發布時間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js理解 call( ) | apply( ) | caller( ) | callee( ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
被js的這幾個方法搞的this暈頭轉向,下定決心搞清楚; 1、call( )和apply( ):兩者都可以將函數綁定到另外一個對象上去運行,只是參數的傳遞方式不同,兩者都可以使當前函數擁有另一個對象的屬性和方法,實現js下的繼承: call( ): a.call( b[arg1,arg2....] ); 所有函數內部的this指針都會指向b,如果沒有b,this指針會指向Global; 實現了a繼承的b的屬性和方法; apply( ) : a.fn.apply(b , arguments); a的fn方法加載到b上調用,this指向b; 2、caller : 在一個函數調用另一個函數時,被調用函數會自動生成一個caller屬性,指向調用它的函數對象。如果該函數當前未被調用,或并非被其他函數調用,則caller為null。 3、callee : 當函數被調用時,它的arguments.callee對象就會指向自身,也就是一個對自己的引用。 由于arguments在函數被調用時才有效,因此arguments.callee在函數未調用時是不存在的(即null.callee),且解引用它會產生異常; 可以用來遞歸計算,驗證參數: var sum = function(n){ if (n <= 0){? ? ? ? ? ? ? ? ? ? ? ? return 1; } else { return n + arguments.callee(n - 1) } }

轉載于:https://www.cnblogs.com/winterRel/p/5112425.html

總結

以上是生活随笔為你收集整理的js理解 call( ) | apply( ) | caller( ) | callee( )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。