這篇文章主要為大家展示了“javascript定義函數的類型有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“javascript定義函數的類型有哪些”這篇文章吧。
在JavaScript中定義函數的幾種類型:1、利用function關鍵字通過聲明或表達式定義函數,語法為“function functionName(parameters){執行的代碼}”;2、利用函數構造器Function()構造函數。
本教程操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。
JavaScript 使用關鍵字 function 定義函數。
函數可以通過聲明定義,也可以是一個表達式。
函數聲明
在之前的教程中,你已經了解了函數聲明的語法 :
function functionName(parameters) { 執行的代碼 }
函數聲明后不會立即執行,會在我們需要的時候調用到。
函數構造器
函數構造器用于創建一個函數對象,在JavaScript中實際上每一個函數都是一個函數對象。
函數構造器的語法:
new Function ([arg1[, arg2[, ...argN]],] functionBody)
arg1, arg2, ... argN 被用于作為函數正常參數名的變量名字,這些變量名必須是符合JavaScript變量標識規范的表示單個變量的字符串或者以逗號分隔的表示多個變量的字符串,比如"x", "theValue", or "a,b"。
functionBody 包含函數定義的JavaScript語句的字符串。
描述
1.函數對象在函數構造器被解析成為函數的時候被創建。但是這樣會比以函數聲明、函數表達式等方式低效,因為這些函數時通過代碼直接解析的。
2.傳遞給函數構造器的字符串參數都會被當作函數構造器生成函數的變量參數名字,以他們出現的順序作為生成的函數的參數的順序。
3.以函數的方式調用函數構造器(不管用不用new關鍵詞修飾)效果一樣。
例子
// Example can be run directly in your JavaScript console // Create a function that takes two arguments and returns the sum of those arguments var adder = new Function('a', 'b', 'return a + b'); // Call the function adder(2, 6); // > 8
參數a和b是可以在函數體內使用的正常的參數名字。
生成的函數為:
function (a,b){undefined return a+b; }
關于json解析的一種方式:var json = (new Function("return " + str))();
原理一樣,
生成的函數為:
function toJson(str){undefined return str; } var str="{'a':1,'b':'abc'}"; toJson(str);
即:function(){return {'a':1,'b':'abc'}}
函數構造器和函數聲明的區別:
用函數構造器創建的函數不會在上下文中創建閉包,它們總是被創建在全局作用域中,當執行被創建的函數時,它們只能使用自己的局部變量或者全局變量,這和eval是不同的。
以上是“javascript定義函數的類型有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。