国产探花免费观看_亚洲丰满少妇自慰呻吟_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函數內部屬性的全部內容了,希望小伙伴們能夠喜歡


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

圖片精選

主站蜘蛛池模板: 巴里| 策勒县| 江门市| 邵阳市| 水城县| 浮山县| 芜湖县| 绥江县| 丹江口市| 北流市| 陈巴尔虎旗| 清新县| 迭部县| 墨竹工卡县| 瓮安县| 普陀区| 平湖市| 罗山县| 金门县| 常熟市| 滕州市| 抚松县| 浮山县| 河源市| 元氏县| 湖南省| 澄江县| 青铜峡市| 区。| 郓城县| 中宁县| 丁青县| 邢台市| 大同市| 广昌县| 宣化县| 鹰潭市| 蒲城县| 清河县| 丰城市| 赤壁市|