你可能不知道的JavaScript的new Function()方法
我們大多數(shù)人都使用過JavaScript,近年來隨著各種JavaScript框架的流行使得JavaScript變得更加神奇和容易。"Anonymous (匿名)函數(shù)?不知道那是什么但是看起來和自己所寫的差不多?!?BR>你可能并不知道可以傳給 new Function() 一個字符串作為函數(shù)的body來構(gòu)造一個 JavaScript函數(shù)。編程中并不經(jīng)常用到,但有時候應(yīng)該是很有用的.
下面是 new Function 的基本用法:
// 最后一個參數(shù)是函數(shù)的 body(函數(shù)體),類型為 string;
// 前面的參數(shù)都是 索要構(gòu)造的函數(shù)的參數(shù)(名字)
var myFunction = new Function('users', 'salary', 'return users * salary');
非常簡單,對吧?
問題是:什么時候適合使用這種方式,而不使用傳統(tǒng)的函數(shù)聲明 function myFnName() 和/或 匿名函數(shù)定義? Andrea Giammarchi 認為,最適合使用 這種函數(shù)定義方式的場景是在NodeJS和瀏覽器的全局環(huán)境中:
(function(win) {
// 在全局環(huán)境中執(zhí)行某些操作
})(Function('return this')());
如果你曾經(jīng)使用過 new Function模式,歡迎留言和討論!
相關(guān)文章
JavaScript 變量,數(shù)據(jù)類型基礎(chǔ)實例詳解【變量、字符串、數(shù)組、對象等】
這篇文章主要介紹了JavaScript 變量,數(shù)據(jù)類型基礎(chǔ),結(jié)合實例形式詳細分析了JavaScript變量聲明、字符串、數(shù)組、對象等基本使用方法與操作注意事項,需要的朋友可以參考下2020-01-01兼容多瀏覽器的iframe自適應(yīng)高度(ie8 、谷歌瀏覽器4.0和 firefox3.5.3)
iframe在ie8 、谷歌瀏覽器4.0和 firefox3.5.3均成功自適應(yīng)高度.2009-11-11mysql輸出數(shù)據(jù)賦給js變量報unterminated string literal錯誤原因
mysql 數(shù)據(jù)庫數(shù)據(jù)賦給js變量報unterminated string literal錯誤原因2010-05-05Js為表單動態(tài)添加節(jié)點內(nèi)容的方法
這篇文章主要介紹了Js為表單動態(tài)添加節(jié)點內(nèi)容的方法,實例分析了js針對表單節(jié)點進行添加操作的常用技巧,需要的朋友可以參考下2015-02-02jquery操作下拉列表、文本框、復(fù)選框、單選框集合(收藏)
jquery操作拉列表、文本框、復(fù)選框、單選框集合。各種對下拉列表、文本框、復(fù)選框、單選框的jquery的相關(guān)操作。做為記錄和收藏的最好方法2014-01-01對google個性主頁的拖拽效果的js的完整注釋[轉(zhuǎn)]
對google個性主頁的拖拽效果的js的完整注釋[轉(zhuǎn)]...2007-04-04javascript適配器模式和組合模式原理與實現(xiàn)方法詳解
這篇文章主要介紹了javascript適配器模式和組合模式原理與實現(xiàn)方法,結(jié)合實例形式詳細分析了javascript適配器模式與組合模式相關(guān)原理、功能、實現(xiàn)方法與注意事項,需要的朋友可以參考下2023-07-07