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