欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談javascript 函數(shù)內(nèi)部屬性

 更新時間:2015年01月21日 09:44:01   投稿:hebedich  
這篇文章主要介紹了淺談javascript 函數(shù)內(nèi)部屬性的相關(guān)資料,需要的朋友可以參考下

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

        請看經(jīng)典的階乘函數(shù)例子:

復(fù)制代碼 代碼如下:

        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);
            }
        }

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

        this引用的是函數(shù)據(jù)以執(zhí)行的環(huán)境對象,或者也可以說是this值

復(fù)制代碼 代碼如下:

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

        caller屬性,保存著調(diào)用當(dāng)前函數(shù)的函數(shù)的引用,如果是在全局作用域中調(diào)用當(dāng)前函數(shù),它的值為Null

復(fù)制代碼 代碼如下:

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

以上就是javascript函數(shù)內(nèi)部屬性的全部內(nèi)容了,希望小伙伴們能夠喜歡

相關(guān)文章

最新評論