js 函式的內部屬性

2022-06-26 19:27:17 字數 1123 閱讀 7373

函式內部有2個特殊物件: arguments 、 this

1、arguments 是乙個類陣列物件,包含傳入函式中的所有引數,雖然它的主要用途是儲存函式引數,但這個物件還有乙個名叫 callee 的屬性。

這個屬性是乙個指標,指向擁有這個 arguments 物件的函式:

這是乙個非常經典的階乘函式。定義階乘函式一般用到遞迴演算法。

但問題是這個函式的執行與函式名 factorial 緊緊耦合在了一起,如果過改變了函式名,勢必要改變內部的遞迴呼叫。

為了消除這種緊密耦合現象,可以使用 callee :

2、另乙個特殊物件是 this,引用的是函式據以執行的環境物件。

函式 showcolor() 是在全域性中定義的,所以當在全域性作用域中呼叫該函式時,this 引用的是全域性物件 window,也就是對 this.color 求值會轉換成對 window.color 求值,於是結果為 red 。

而把這個函式賦值給物件 o ,並呼叫函式, this 引用的是物件 o,因此對 this.color 求值會轉換成對 o.color 求值,返回 blue。

3、ecmascript 5 也規範了另乙個函式物件的屬性:caller。

這個屬性中儲存這呼叫當前函式的函式的引用,如果是在全域性作用域中呼叫當前函式,它的值為 null。

因為 outer() 呼叫了 inner(),所以 inner.caller 就指向了 outer()。

但要注意,在嚴格模式下,訪問這些屬性會報錯

不過也可以使用命名函式表示式來取得相同的結果:

JavaScript函式內部屬性

函式內部有兩個特殊物件,this arguments,其中arguments是乙個類陣列物件,包含著傳入函式中的所有引數,主要用來儲存函式引數。arguments物件還有乙個callee屬性,callee是乙個指標,指向擁有這個arguments物件的函式。function fact num els...

js函式 內部屬性 方法 遞迴呼叫

函式的內部屬性argument介紹 1 該物件是函式的內部的物件,只能在函式體中使用,直接使用即可。2 arguments是乙個物件,用來代表實參資料。1 arguments物件有乙個屬性,length 代表了實參的個數。2 arguments物件中的實參資料,每個實參都對應乙個序號,序號從0開始。...

spark RDD的5個重要內部屬性

rdds 介面的五個屬性 下表總結了 rdds 的五個屬性 rdds 依賴關係 在 spark 中,rdd 之間的依賴關係分為兩類 1.窄依賴 每個父 rdd 的分割槽都至多被乙個子 rdd 的分割槽使用,即為 onetoonedependecies 2.寬依賴 多個子 rdd 的分割槽依賴乙個父 ...