函數的構造函數
是Function
,函數
是Function
的實例。
在JavaScript中使用Function
可以實例化函數對象,也是說在JavaScript中函數與普通對象一樣,也是一個對象類型,函數是JavaScript的一等公民。
- 函數是對象,可以使用對象的動態特性
- 函數是對象,就有構造函數創建函數
- 函數是函數,可以創建其他對象
- 函數是唯一可以限定變量作用域的結果
語法:
new Function(arg0, arg1, arg2, arg3, argN, body);
-
Function
中的參數全部是字符串 -
該構造函數的作用是將參數鏈接起來組成函數
- 如果參數只有一個,那麼表示函數體
- 如果參數有多個,那麼最後一個表示函數體,前面所有參數表示函數的參數
- 如果沒有參數,表示創建一個空函數
function foo() {
console.log("foo");
}
foo();
/* 等價於 */
var func = new Function("console.log(\"foo\")");
func();
function foo(num, desc) {
console.log(num,desc);
}
foo(123,"我是描述");
/* 等價於 */
var func = new Function("num", "des","console.log(num,des)");
func(123, "我是描述");
注意,使用Function
定義函數時,如果有參數的話,參數的名字一定要和函數體中的參數名字保持一致,如:num
對應num
;desc
對應desc
。