Function

Function 構造函數 數組

建立一個新的Function對象。 在 JavaScript 中, 每一個函數實際上都是一個Function對象。閉包

語法

new Function ([arg1[, arg2[, ...argN]],] functionBody)

參數

arg1, arg2, ... argN
被函數使用的參數的名稱必須是合法命名的。參數名稱是一個有效的JavaScript標識符的字符串,或者一個用逗號分隔的有效字符串的列表;例如「×」,「theValue」,或「A,B」。
functionBody
一個含有包括函數定義的JavaScript語句的 字符串

描述

使用Function構造器生成的Function對象是在函數建立時解析的。這比你使用函數聲明或者函數表達式(function)並在你的代碼中調用更爲低效,由於使用後者建立的函數是跟其餘代碼一塊兒解析的app

全部被傳遞到構造函數中的參數,都將被視爲將被建立的函數的參數,而且是相同的標示符名稱和傳遞順序。函數

注意: 使用Function構造器生成的函數,並不會在建立它們的上下文中建立閉包;它們通常在全局做用域中被建立。當運行這些函數的時候,它們只能訪問本身的本地變量和全局變量,不能訪問Function構造器被調用生成的上下文的做用域。這和使用帶有函數表達式代碼的 eval 不一樣。this

以調用函數的方式調用Function的構造函數 (不是用new關鍵字) 跟以構造函數來調用是同樣的.spa

屬性和方法

全局的Function對象沒有本身的屬性和方法, 可是, 由於它自己也是函數,因此它也會經過原型鏈從Function.prototype上繼承部分屬性和方法。prototype

原型對象

屬性

Function.arguments 
以數組形式獲取傳入函數的全部參數。此屬性已被 arguments替代。
Function.arity 
用於指定的函數的參數的個數,但已被刪除。使用length屬性代替。
Function.caller 
獲取調用函數的具體對象。
Function.length
獲取函數的接收參數個數。
Function.name 
獲取函數的名稱。
Function.displayName 
獲取函數的display name。
Function.prototype.constructor
聲明函數的原型構造方法,詳細請參考  Object.constructor 。

方法

Function.prototype.apply()
在一個對象的上下文中應用另外一個對象的方法;參數可以以數組形式傳入。
Function.prototype.bind()
bind()方法會建立一個新函數,稱爲綁定函數.當調用這個綁定函數時,綁定函數會以建立它時傳入 bind()方法的第一個參數做爲 this,傳入 bind()方法的第二個以及之後的參數加上綁定函數運行時自己的參數按照順序做爲原函數的參數來調用原函數.
Function.prototype.call()
在一個對象的上下文中應用另外一個對象的方法;參數可以以列表形式傳入。
Function.prototype.isGenerator() 
若函數對象爲generator,返回true,反之返回  false
Function.prototype.toSource() 
獲取函數的實現源碼的字符串。 覆蓋了  Object.prototype.toSource 方法。
Function.prototype.toString()
獲取函數的實現源碼的字符串。覆蓋了  Object.prototype.toString 方法。
原文   https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function#Syntax
相關文章
相關標籤/搜索