亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

深入淺析JS Function()構(gòu)造函數(shù)

 更新時間:2016年08月22日 15:10:32   作者:學(xué)無止境-小于  
這篇文章給大家介紹了js function()構(gòu)造函數(shù)的知識以及關(guān)于function()構(gòu)造函數(shù)需要注意的幾個要點,本文介紹的非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧

js中function對象是一個令人著迷的東西,但由于他太過于靈活,常常令人迷惑.

先給大家看個代碼片段。

var scope="global";
function constructFunction(){
var scope="local";
return new Function(" return scope");
}
constructFunction()();
 function constructFunction2(){
var scope="local";
return function(){
return scope;
}
}
constructFunction2()();

   看到這兩個你的第一感覺是什么?都返回 "local"??,如果是這樣的話就需要好好看一下下面的講解了。constructFunction2()了解閉包的就應(yīng)該很容易的知道答案 是"local",這里就不細講了。下面我著重講一下constructFunction()的情況。

  這里用到了 Function()構(gòu)造函數(shù), Function()構(gòu)造函數(shù)雖然不是很常用,但是了解一下還是很有必要的。

  不管是通過函數(shù)定義語句還是函數(shù)直接量表達式,函數(shù)的定義都要使用 function()關(guān)鍵字。單函數(shù)還可以通過Function()構(gòu)造函數(shù)來定義,比如:

 var f=new Function("x","y","return x*y");

  這一行的實際效果和下面的一行代碼是等價的。

var f=function(x,y){x*y};

   Function()構(gòu)造函數(shù)可以傳入任意數(shù)量的字符串實參,最后一個實參所表示的文本是函數(shù)體;它可以包含任意的Javascript 語句,每條語句之間用分號分割。傳入構(gòu)造函數(shù)的其他所有的實參字符串是指定函數(shù)的名字的字符串。如果定義的函數(shù)不包含任何參數(shù),只需給構(gòu)造函數(shù)簡單地傳入 一個字符串函數(shù)體即可。

  關(guān)于Function()構(gòu)造函數(shù)需要特別注意一下幾點:

  1.Function()構(gòu)造函數(shù)允許JavaScript在運行時動態(tài)的創(chuàng)建并編譯函數(shù)。

  2.每次調(diào)用Function()構(gòu)造函數(shù)都會解析函數(shù)體,并創(chuàng)建新的函數(shù)對象。如果是在一個循環(huán)或者多次調(diào)用的函數(shù)中執(zhí)行這個構(gòu)造函數(shù),執(zhí)行效率會受到影響。相比之下,循環(huán)中的嵌套函數(shù)和函數(shù)定義表達式則不會每次執(zhí)行時都重新編譯。

  2.最后的一點,也是關(guān)于Function()構(gòu)造函數(shù)非常重要的一點,就是它所創(chuàng)建的函數(shù)并不使用詞法作用域,相反,函數(shù)體代碼的編譯總是會在頂層函數(shù)執(zhí)行??赐赀@一點,上面的函數(shù)constructFunction()();返回“global”應(yīng)該很容易理解了吧?

以上所述是小編給大家介紹的JS Function()構(gòu)造函數(shù),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 基于JavaScript編寫一個翻卡游戲

    基于JavaScript編寫一個翻卡游戲

    這篇文章主要為大家詳細介紹了如何溧陽JavaScript編寫一個簡單的翻卡游戲,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2023-02-02
  • 詳解JavaScript數(shù)組和字符串中去除重復(fù)值的方法

    詳解JavaScript數(shù)組和字符串中去除重復(fù)值的方法

    這篇文章主要介紹了詳解JavaScript數(shù)組和字符串中去除重復(fù)值的方法,及利用各種限制條件對數(shù)組和字符串進行過濾,需要的朋友可以參考下
    2016-03-03
  • js將控件隱藏及display屬性的使用介紹

    js將控件隱藏及display屬性的使用介紹

    用JavaScript隱藏控件的方法有兩種,分別是通過設(shè)置控件的style的“display”和“visibility”屬性,下面詳細為大家介紹下具體的使用
    2013-12-12
  • 如何在JavaScript中運行.NET?Core代碼詳情

    如何在JavaScript中運行.NET?Core代碼詳情

    這篇文章主要介紹了在JavaScript中運行.NET?Core代碼詳情,DotNetJS可以將C#項目編譯為與任何環(huán)境兼容的單文件JavaScript庫,變可以在JavaScript中運行.NET?Core代碼,相關(guān)操作分享詳情,需要的小伙伴可以參考一下
    2022-04-04
  • 詳解webpack 入門與解析

    詳解webpack 入門與解析

    這篇文章主要介紹了詳解webpack 入門與解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • JavaScript兩種計時器的實例講解

    JavaScript兩種計時器的實例講解

    今天小編就為大家分享一篇關(guān)于JavaScript兩種計時器的實例講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • JavaScript和CSS通過expression實現(xiàn)Table居中顯示

    JavaScript和CSS通過expression實現(xiàn)Table居中顯示

    如何將表格居中的顯示使用一個叫expression的函數(shù),多數(shù)的瀏覽器都支持這個函數(shù),感興趣的朋友可以看一下具體的實現(xiàn)哈
    2013-06-06
  • javascript中break,continue和return語句用法小結(jié)

    javascript中break,continue和return語句用法小結(jié)

    break,continue和return這三個語句的用法新手們經(jīng)常弄混淆,至少在我學(xué)習(xí)c語言的時候經(jīng)常把它們的用法給搞錯。不過現(xiàn)在好了,我已徹底搞清楚它們之間的用法
    2012-05-05
  • Javascript 運動中Offset的bug解決方案

    Javascript 運動中Offset的bug解決方案

    這篇文章主要介紹了Javascript 運動中Offset的bug解決方案,需要的朋友可以參考下
    2014-12-12
  • javascript實現(xiàn)留言板功能

    javascript實現(xiàn)留言板功能

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)留言板功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評論