摘要:返回正被執(zhí)行的對象,也就是所指定的對象的正文。可選項(xiàng)參數(shù)是當(dāng)前正在執(zhí)行的對象的名稱。屬性是對象的一個(gè)成員,它表示對函數(shù)對象本身的引用,這有利于匿名函數(shù)的遞歸或者保證函數(shù)的封裝性。而該屬性僅當(dāng)相關(guān)函數(shù)正在執(zhí)行時(shí)才可用。
調(diào)用函數(shù)
之前做項(xiàng)目的過程中,為了防止用戶重復(fù)點(diǎn)擊事件,往往在每一個(gè)函數(shù)里寫一個(gè)flag來做判斷,但是這樣的方式會導(dǎo)致代碼冗余,所以借助 函數(shù)里arguments.callee ,寫了一個(gè)函數(shù),如下:
// 防重復(fù)觸發(fā) stopReapeatEvent=function (obj) { if (obj.callFlag) return true; obj.callFlag=!obj.callFlag; clearTimeout(obj.iTime); obj.iTime=setTimeout(function(){ obj.callFlag=!obj.callFlag; }, 1000); }
調(diào)用的時(shí)候也很簡單,
//調(diào)用 if(stopReapeatEvent(arguments.callee)) return ;原理:補(bǔ)充 caller 和 callee 知識點(diǎn) caller:
返回一個(gè)對函數(shù)的引用,該函數(shù)調(diào)用了當(dāng)前函數(shù)。
functionName.caller
functionName 對象是所執(zhí)行函數(shù)的名稱。
說明:對于函數(shù)來說,caller 屬性只有在函數(shù)執(zhí)行時(shí)才有定義。 如果函數(shù)是由 Javascript 程序的頂層調(diào)用的,那么 caller 包含的就是 null 。
callee:返回正被執(zhí)行的 Function 對象,也就是所指定的 Function 對象的正文。
[function.]arguments.callee
可選項(xiàng) function 參數(shù)是當(dāng)前正在執(zhí)行的 Function 對象的名稱。
說明
callee 屬性的初始值就是正被執(zhí)行的 Function 對象。
callee 屬性是 arguments 對象的一個(gè)成員,它表示對函數(shù)對象本身的引用,這有利于匿名函數(shù)的遞歸或者保證函數(shù)的封裝性。而該屬性僅當(dāng)相關(guān)函數(shù)正在執(zhí)行時(shí)才可用。還有需要注意的是callee擁有l(wèi)ength屬性,這個(gè)屬性有時(shí)候用于驗(yàn)證還是比較好的。arguments.length是實(shí)參長度,arguments.callee.length是形參長度,由此可以判斷調(diào)用時(shí)形參長度是否和實(shí)參長度一致。
求指正,謝謝!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/90002.html
摘要:返回正被執(zhí)行的對象,也就是所指定的對象的正文。可選項(xiàng)參數(shù)是當(dāng)前正在執(zhí)行的對象的名稱。屬性是對象的一個(gè)成員,它表示對函數(shù)對象本身的引用,這有利于匿名函數(shù)的遞歸或者保證函數(shù)的封裝性。而該屬性僅當(dāng)相關(guān)函數(shù)正在執(zhí)行時(shí)才可用。 調(diào)用函數(shù) 之前做項(xiàng)目的過程中,為了防止用戶重復(fù)點(diǎn)擊事件,往往在每一個(gè)函數(shù)里寫一個(gè)flag來做判斷,但是這樣的方式會導(dǎo)致代碼冗余,所以借助 函數(shù)里arguments.cal...
摘要:返回正被執(zhí)行的對象,也就是所指定的對象的正文。可選項(xiàng)參數(shù)是當(dāng)前正在執(zhí)行的對象的名稱。屬性是對象的一個(gè)成員,它表示對函數(shù)對象本身的引用,這有利于匿名函數(shù)的遞歸或者保證函數(shù)的封裝性。而該屬性僅當(dāng)相關(guān)函數(shù)正在執(zhí)行時(shí)才可用。 調(diào)用函數(shù) 之前做項(xiàng)目的過程中,為了防止用戶重復(fù)點(diǎn)擊事件,往往在每一個(gè)函數(shù)里寫一個(gè)flag來做判斷,但是這樣的方式會導(dǎo)致代碼冗余,所以借助 函數(shù)里arguments.cal...
摘要:目的都是為了降低回調(diào)函數(shù)執(zhí)行頻率,節(jié)省計(jì)算機(jī)資源,優(yōu)化性能,提升用戶體驗(yàn)。函數(shù)防抖事件頻繁觸發(fā)的情況下,只有經(jīng)過足夠的空閑時(shí)間,才執(zhí)行代碼一次。 函數(shù)節(jié)流和函數(shù)防抖的對比分析 一、前言 前端開發(fā)中,函數(shù)節(jié)流(throttle) 和 函數(shù)防抖(debounce) 作為常用的性能優(yōu)化方法,兩者都是用于優(yōu)化高頻率執(zhí)行 js 代碼的手段,那具體它們有什么異同點(diǎn)呢?有對這兩個(gè)概念不太了解的小伙伴...
摘要:函數(shù)節(jié)流和防抖防抖和節(jié)流的作用都是防止函數(shù)多次調(diào)用。頁面窗口的事件方法節(jié)流方法閉包節(jié)流防抖一段時(shí)間內(nèi)觸發(fā)事件只執(zhí)行一次。 js 函數(shù)節(jié)流和防抖 防抖和節(jié)流的作用都是防止函數(shù)多次調(diào)用。區(qū)別在于,假設(shè)一個(gè)用戶一直觸發(fā)這個(gè)函數(shù),且每次觸發(fā)函數(shù)的間隔小于wait,防抖的情況下只會調(diào)用一次,而節(jié)流的 情況會每隔一定時(shí)間(參數(shù)wait)調(diào)用函數(shù)。 throttle 節(jié)流 節(jié)流是將多次執(zhí)行變成每隔一...
摘要:函數(shù)防抖的要點(diǎn),是需要一個(gè)來輔助實(shí)現(xiàn),延遲運(yùn)行需要執(zhí)行的代碼。若計(jì)時(shí)期間事件沒有被重新觸發(fā),等延遲時(shí)間計(jì)時(shí)完畢,則執(zhí)行目標(biāo)代碼。而非立即執(zhí)行版指的是觸發(fā)事件后函數(shù)會立即執(zhí)行,然后秒內(nèi)不觸發(fā)事件才能繼續(xù)執(zhí)行函數(shù)的效果。。 JS中的函數(shù)防抖 一、什么是函數(shù)防抖 概念:函數(shù)防抖(debounce),就是指觸發(fā)事件后,在 n 秒內(nèi)函數(shù)只能執(zhí)行一次,如果觸發(fā)事件后在 n 秒內(nèi)又觸發(fā)了事件,則會重...
閱讀 885·2021-10-27 14:19
閱讀 1102·2021-10-15 09:42
閱讀 1526·2021-09-14 18:02
閱讀 738·2019-08-30 13:09
閱讀 2981·2019-08-29 15:08
閱讀 2084·2019-08-28 18:05
閱讀 948·2019-08-26 10:25
閱讀 2777·2019-08-23 16:28