動態函數 Function -> 動態函數就是在啟動並執行過程中, 將一段字串作為代碼運行.
由於字串可以隨意的拼接. 因此得到動態執行. ( 動態產生代碼 然後再去執行它)
-> 定義動態函數, 並執行
-> 使用 Function 建構函式, 建立函數. Function 是一個建構函式!!!. new Function 會得到 **一個函數**(函數也是一個對象) -> 文法 new Function( arg0, arg1, ..., argN, body ) Function 的所有的參數(都是字串), 除了最後一個以外, 都是產生的函數的參數 最後一個參數是 函數體
// 案例1: 求兩個數位和 -> function getSum ( num1, num2 ) {
**return num1 + num2;**
}**
動態函數 --> var getSum2 = new Function ( ‘num1‘, ‘num2‘, ‘return num1 + num2;‘ );
調用動態函數建立的函數 getSum2(100,200)
注意:這裡面的參數都是字串!
函數的相關的一些參數 arguments 凡是函數調用, 都會預設含有一個 arguments 對象. 可以將其看做為 "數組". 裡面儲存著調用時傳入的所有參數. 可以使用數組的索引訪問這些參數.
例如: 寫一個函數, 在參數中寫任意個參數, 最後求其和 function sum () { // 所有的參數都會儲存到 arguments 中 var sum = 0; for ( var i = 0; i < arguments.length; i++ ) { sum += arguments[ i ]; } return sum; } 案例: extend( o ) => 將 o 混入到當前對象 this 中 extend( o1, o2 ) => 將 o2 混入到 o1 中
函數名.length, 即函數的 length 屬性. 表示 定義函數時, 參數的個數
如果定義函數的時候, 定義了參數. 但是調用的時候又沒有傳遞該參數. 那麼該參數在函數內就是 undefined
函數.name 返回的是函數名