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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

用闭包实现重载的过程学习闭包

發布時間:2023/12/31 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用闭包实现重载的过程学习闭包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用閉包實現重載的過程學習閉包

let global = {overLoad:function(){} }; function Refactoring(func) {let oldFunc = global.overLoad; global.overLoad = function () { if (func.length === arguments.length) {//js函數length屬性表示有多少個參數return func.apply(this, arguments);//arguments:調用global.overLoad函數的參數} else if (typeof oldFunc === "function") {return oldFunc.apply(this, arguments);//global調用的overLoad函數,所以this指向global}} } Refactoring((name) => console.log(`${name}`)) Refactoring((name, age) => console.log(`${name},${age}`)) Refactoring((name, age, province) => console.log(`${name},${age}歲,${province}`)) global.overLoad('Kecvin') // Kecvin global.overLoad('Kecvin', 28) // Kecvin,28歲 global.overLoad('Kecvin', 28, '安徽') // Kecvin,28歲,安徽人
  • 什么叫函數的重載

根據參數(arguments)數量的不同,返回不同的結果

  • 以上哪里用到了閉包?

關于閉包,網上有很多定義,建議看阮一峰老師這篇,雖然有點久遠,但并不過時

學習JavaScript閉包

其實不必咬文嚼字,我一直認為對于閉包最通俗易懂的解釋就是下面的一句話

閉包是個函數,而它「記住了周圍發生了什么」,我們可以通過它,拿到它周圍的東西

換言之,閉包就是將函數內部和函數外部連接起來的一座橋梁

  • 閉包在什么時候銷毀 ?

js中內存分為【棧 】和 【堆】,閉包函數主體存儲在【堆】中,它的引用存儲在 【?!?中,js會定時清理 【堆 】中沒有引用的函數

總結

以上是生活随笔為你收集整理的用闭包实现重载的过程学习闭包的全部內容,希望文章能夠幫你解決所遇到的問題。

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