這篇文章主要介紹JavaScript如何使用Function()構(gòu)造函數(shù),文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、江油網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、江油網(wǎng)絡(luò)營銷、江油企業(yè)策劃、江油品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供江油建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:chinadenli.net
Function()構(gòu)造函數(shù)
先看代碼:
var f = new Function("x","y","return x+y"); //Function()構(gòu)造函數(shù) var f = function(x,y){return x+y}; //這兩條代碼是等價的
通過這個方法我們可以傳入任意數(shù)量的字符串實(shí)參,而且最后一個實(shí)參所表示的文本是函數(shù)體,這個方法它是可以包含任意數(shù)量的JavaScript語句的,而且在使用的時候如果構(gòu)造的函數(shù)不包含任何參數(shù)的話,我們只需要輸入一個函數(shù)就可以了。這個方法和其他兩個方法是不一樣的,這個方法是允許JavaScript在運(yùn)行的時候動態(tài)地創(chuàng)建翻譯函數(shù),而且我們每次在調(diào)用這個方法的時候函數(shù)都會進(jìn)行解析函數(shù)體。所以在多次使用或者循環(huán)使用的話,效率是會受到影響的。相比之下循環(huán)中的嵌套函數(shù)和函數(shù)定義表達(dá)式就不會每次執(zhí)行的時候進(jìn)行重新編譯。
對于這個構(gòu)造函數(shù)還有一點(diǎn)是值得我們注意的,那就是它所創(chuàng)建的函數(shù)并不是使用詞法作用域,都因?yàn)楹瘮?shù)體代碼在編譯的時候總在頂層函數(shù)執(zhí)行,代碼如下所示:
var a = 3; //在頂層函數(shù)中聲明變量a function f(){ var a = 2; //在函數(shù)體內(nèi)聲明局部變量a return new Function("return a*a;"); //無法捕獲局部作用域 } console.log(f()()); //控制臺輸出9而非4,說明構(gòu)造函數(shù)的編譯在頂層函數(shù)執(zhí)行
那么對于這個問題我們可以在全局作用域中進(jìn)行執(zhí)行eval()。
以上是“JavaScript如何使用Function()構(gòu)造函數(shù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章題目:JavaScript如何使用Function()構(gòu)造函數(shù)
分享路徑:http://chinadenli.net/article30/ihdpso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站內(nèi)鏈、定制開發(fā)、App開發(fā)、、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)