国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

淺談javascript 函數內部屬性

2024-05-06 16:14:59
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了淺談javascript 函數內部屬性的相關資料,需要的朋友可以參考下
 

        在函數內部有兩個特殊的屬性:arguments 和 this。arguments是一個類數組對象,包含傳入的所有參數,
        但是這個對象還有一個名叫callee的屬性,該屬性是一個指針,指向擁有這個arguments對象的函數。

        請看經典的階乘函數例子:

 

復制代碼代碼如下:

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

 

        使用第一種方式是沒有錯的,但是耦合性太高,不太好,函數名改變之后,內部的函數名也要改變
        第二種方式就是低耦合的做法,無論函數名怎么改變都不會影響函數執行。

        this引用的是函數據以執行的環境對象,或者也可以說是this值

 

復制代碼代碼如下:

        window.color = "red";
        var o = {color: "blue"};
        function sayColor() {
            alert(this.color);
        }
        sayColor();//red
        o.sayColor = sayColor;
        o.sayColor();//blue

 

        caller屬性,保存著調用當前函數的函數的引用,如果是在全局作用域中調用當前函數,它的值為Null

 

復制代碼代碼如下:

 function outer() {
            innter();
        }
        function innter(){
            //alert(innter.caller);//耦合性太高
            alert(arguments.callee.caller);
        }
        outer();

 

以上就是javascript函數內部屬性的全部內容了,希望小伙伴們能夠喜歡


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 高雄市| 黄石市| 建瓯市| 贺兰县| 宝山区| 包头市| 广水市| 米林县| 武陟县| 和顺县| 安新县| 衡东县| 锡林浩特市| 沧州市| 庆安县| 石首市| 卢龙县| 柳河县| 同江市| 大兴区| 南阳市| 仪征市| 济阳县| 西青区| 个旧市| 南澳县| 景谷| 文化| 龙里县| 图木舒克市| 罗甸县| 凤山市| 赫章县| 伊川县| 洛隆县| 登封市| 星子县| 通道| 阿鲁科尔沁旗| 渝北区| 湖北省|