1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. javascript中callee與caller的區別

        時間:2024-10-06 09:45:56 JavaScript 我要投稿
        • 相關推薦

        javascript中callee與caller的區別

          callee

          callee是對象的一個屬性,該屬性是一個指針,指向參數arguments對象的函數

          首先我們來寫個階成函數:

          function chen(x){if (x<=1) {return 1;} else{return x*chen(x-1);};};

          從這個函數中可以看出來,用到了遞歸函數,要是改變了函數名,里面的函數名也要隨著改變,這樣很不方便所以我們用callee來試試

          function chen(x){if (x<=1) {return 1;}else{return x*arguments.callee(x-1);};};

          我們來分析一下為什么這樣寫:根據callee的定義,可以看出來callee是arguments對象的一個屬性,指向arguments對象的函數,這個函數就是chen(chen=arguments.callee),這樣解釋應該可以理解了吧。

          caller

          caller是函數對象的一個屬性,該屬性保存著調用當前函數的函數的引用(指向當前函數的直接父函數)

          先來個例子吧

          function a(){b();};function b(){alert(b.caller);};a(); //結果就是彈出函數a和內容

          我們來解釋一下吧,首先函數b的屬性caller調用當前函數b的函數引用a(就是指向當前函數b的父函數a),所以結果就是彈出 function a(){ b();};

          那么了解了caller和callee,那么可以不可以將二者結合在一起來使用呢

          function b(){alert(b.caller);};

          從這個代碼可以看出b函數中調用了b函數名,這樣當函數名改變時就很不方便,我們需要替換里面的那個b

          前面我們知道用什么方法可以指向當前對象,下面我們就來修改一下:

          (function a(){b();})();function b(){alert(arguments.callee.caller);};

          從代碼中可以看出我們用arguments.callee代替了b函數,所以解決了一下麻煩。。。。。

          以上所述就是本文的全部內容了,希望大家能夠喜歡。

        【javascript中callee與caller的區別】相關文章:

        JavaScript中的with關鍵字07-24

        在Java中執行JavaScript代碼07-14

        Javascript中typeof 用法歸納09-27

        抽象語法樹在JavaScript中的應用08-18

        JavaScript中的三種對象10-24

        perl- javascript中class的機制05-03

        JavaScript類定義原型方法的兩種實現的區別07-11

        JavaScript中push(),join() 函數實例詳解09-05

        詳解JavaScript中的splice()使用方法08-20

        javascript中for/in循環以及常見的使用技巧06-24

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>