<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        javascript中callee與caller的用法和應用場景_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 20:56:19
        文檔

        javascript中callee與caller的用法和應用場景_javascript技巧

        javascript中callee與caller的用法和應用場景_javascript技巧:caller : functionName.caller 返回調用者。 看看下面的函數,大家可以復制到VS中執行下 代碼如下: function caller() { if (caller.caller) { alert(caller.caller.toString()); } else { alert(函數直接執行);
        推薦度:
        導讀javascript中callee與caller的用法和應用場景_javascript技巧:caller : functionName.caller 返回調用者。 看看下面的函數,大家可以復制到VS中執行下 代碼如下: function caller() { if (caller.caller) { alert(caller.caller.toString()); } else { alert(函數直接執行);

        caller :
        functionName.caller 返回調用者。

        看看下面的函數,大家可以復制到VS中執行下
        代碼如下:
        function caller() {
        if (caller.caller) {
        alert(caller.caller.toString());
        } else {
        alert("函數直接執行");
        }
        }
        function handleCaller() {
        caller();
        }
        handleCaller();
        caller();

        大家會發現第一個alert會彈出調用caller函數的調用者handleCaller,而第二個alert由于沒有在其他函數體內調用,所以caller為null,就執行了 alert("函數直接執行");


        callee:


        返回正被執行的 Function 對象,也就是所指定的 Function 對象的正文.
        callee是arguments 的一個屬性成員,它表示對函數對象本身的引用,這有利于匿名

        函數的遞歸或者保證函數的封裝性。 下面一段代碼先說明callee的用法,實例代碼摘自網上
        代碼如下:
        function calleeLengthDemo(arg1, arg2) {
        alert(arguments.callee.toString());
        if (arguments.length == arguments.callee.length) {
        window.alert("驗證形參和實參長度正確!");
        return;
        } else {
        alert("實參長度:" + arguments.length);
        alert("形參長度: " + arguments.callee.length);
        }
        }
        calleeLengthDemo(1);

        第一個消息框彈出calleeLengthDemo函數本身,這說明callee就是函數本身對象的引用。callee還有個非常有用的應用就是用來判斷實際參數跟行參是否一致。上面的代碼第一個消息框會彈出實際參數的長度為1,形式參數也就是函數本身的參數長度為2.

        應用場景:
        callee的應用場景一般用于匿名函數
        大家看下下面一段代碼 摘自網絡
        代碼如下:
        var fn=function(n){
        if(n>0) return n+fn(n-1);
        return 0;
        }
        alert(fn(10))

        函數內部包含了對自身的引用,函數名僅僅是一個變量名,在函數內部調用即相當于調用
        一個全局變量,不能很好的體現出是調用自身,這時使用callee會是一個比較好的方法
        代碼如下:
        var fn=(function(n){
        if(n>0) return n+arguments.callee(n-1);
        return 0;
        })(10);
        alert(fn)

        這樣就讓代碼更加簡練。又防止了全局變量的污染。

        caller的應用場景 主要用于察看函數本身被哪個函數調用。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        javascript中callee與caller的用法和應用場景_javascript技巧

        javascript中callee與caller的用法和應用場景_javascript技巧:caller : functionName.caller 返回調用者。 看看下面的函數,大家可以復制到VS中執行下 代碼如下: function caller() { if (caller.caller) { alert(caller.caller.toString()); } else { alert(函數直接執行);
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产成人亚洲合集青青草原精品 | 亚洲熟妇无码另类久久久| 综合亚洲伊人午夜网 | 成人免费视频69| 四虎免费影院4hu永久免费| 中文字幕亚洲不卡在线亚瑟| 久久国产亚洲精品无码| 亚洲av色香蕉一区二区三区蜜桃| 在线观看免费无码视频| 国产成人午夜精品免费视频| 中文字幕在线亚洲精品| 国产在线观看xxxx免费| 国产色爽免费视频| 亚洲日韩国产精品无码av| 特色特黄a毛片高清免费观看| 亚洲免费福利在线视频| 精品久久久久久亚洲| 亚洲爱情岛论坛永久| 激情婷婷成人亚洲综合| 97国产在线公开免费观看| 日韩亚洲变态另类中文| 久久免费福利视频| 在线观看亚洲天天一三视| 久久精品免费一区二区三区| 亚洲综合日韩久久成人AV| 久久国产乱子伦精品免费看| 亚洲第一香蕉视频| 57pao国产成视频免费播放| 相泽亚洲一区中文字幕| 久久免费区一区二区三波多野| 亚洲精品日韩中文字幕久久久| 啦啦啦手机完整免费高清观看| 亚洲国产日韩在线人成下载| 十八禁无码免费网站| 亚洲一区二区影院| 最近中文字幕mv手机免费高清 | 日本免费一区二区三区 | 日本免费人成网ww555在线 | 亚洲AV色吊丝无码| 7723日本高清完整版免费| 香港一级毛片免费看|