<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        比較常見的javascript中定義函數的區別_javascript技巧

        來源:懂視網 責編:小采 時間:2020-11-27 21:45:23
        文檔

        比較常見的javascript中定義函數的區別_javascript技巧

        比較常見的javascript中定義函數的區別_javascript技巧:比較常見的javascript中定義函數的區別主要通過以下三個方面給大家講解,需要的朋友參考下吧 1:調用關鍵字function來構造 如: function distance(x1,x2,y1,y2) { var dx=x2-x1; var dy=y2-y1; return Math.sqrt(dx
        推薦度:
        導讀比較常見的javascript中定義函數的區別_javascript技巧:比較常見的javascript中定義函數的區別主要通過以下三個方面給大家講解,需要的朋友參考下吧 1:調用關鍵字function來構造 如: function distance(x1,x2,y1,y2) { var dx=x2-x1; var dy=y2-y1; return Math.sqrt(dx

        比較常見的javascript中定義函數的區別主要通過以下三個方面給大家講解,需要的朋友參考下吧

        1:調用關鍵字function來構造

          如:

        2:使用Function()構造函數

          如:

          這行代碼創建了一個新函數,該函數和你所熟悉的語法定義的函數基本上時等價的:

          Functino()構造函數可以接受任意多個字符串參數。它的最后一個參數時函數的主體,其中可以包含任何JavaScript語句,語句之間用分號分隔。其他的參數都是用來說明函數要定義的形式參數名的字符串。如果你定義的函數沒有參數,那么可以只需給構造函數傳遞一個字符串(即函數的主體)即可。

          注意,傳遞給構造函數Function()的參數中沒有一個用于說明它要創建的函數名。用Function()構造函數創建的未命名函數有時被成為“匿名函數”。

          你可能非常想知道Function()構造函數的用途是什么。為什么不能只用function語句來定義所有的函數呢?原因是Function()構造函數允許我們動態地建立和編譯一個函數,它不會將我們限制在function語句預編譯的函數體中。這樣做帶來的負面影響效應就是每次調用一個函數時,Function()構造函數都要對它進行編譯。因此,在循環體中或者在經常使用的函數中,我們不應該頻繁地調用這個構造函數。

          使用Function()構造函數的另一個原因是它能夠將函數定義為JavaScript表達式的一部分,而不是將其定義一個語句,這種情況下使用它就顯得比較的方面,甚至可以說精致。

        3:函數直接量

          函數直接量是一個表達式,它可以定義匿名函數。函數直接量的語法和function語句非常相似,只不過它被用作表達式,而不是用作語句,而且也無需指定函數名。下面的三行代碼分別使用function()語句、Funciont()構造函數和函數直接量定義了三個基本上相同的函數:

          雖然函數直接量創建的是未命名函數,但是它的語法也規定它可以指定函數名,這在編寫調用自身的遞歸函數時非常有用。

          例如:

          上面的代碼定義了一個未命名函數,并對它的引用存儲在變量f中。它并沒有真正的創建一個名為fact()的函數,只是允許函數體用這個名字來引用自身。但是要注意,JavaScript1.5之前的版本中沒有正確實現這種命名的函數直接量。

          函數直接量的用法和用Function()構造函數創建函數的方法非常相似。由于它們都是由JavaScript的表達式創建的,而不是由語句創建的,所以使用它們的方式也就更加靈活,尤其適用于那些只使用一次,而且無需命名的函數。例如,一個使用函數直接量表達式指定的函數可以存儲在一個變量中、傳遞給其他的函數甚至被直接調用:

          和Function()構造函數一樣,函數直接量創建的是未命名函數,而且不會自動地將這個函數存儲在屬性中。但是,比起Function()構造函數來說,函數直接量有一個重要的優點。由Function()構造函數創建的函數的主體必須用一個字符串說明,用這種方式來表達一個長而復雜的函數是狠笨拙的。但是函數直接量的主體使用的卻是標準的JavaScript語法。而且函數直接量只被解析一次,而作為字符串傳遞給Function()構造函數的JavaScript代碼則在每次調用構造函數時只需被解析一次和編譯一次。

             在JavaScript1.1中,可以使用構造函數Function()來定義函數,在JavaScript1.2和其后的版本中,還可以使用函數直接量來構造函數。你應該注意這兩種方法之間的重要差別。

          首先,構造函數Function()允許在運行時動態地創建和編譯JavaScript代碼。但是函數直接量卻是函數結構的一個靜態部分,就像function語句一樣。

          其次,作為第一個差別的必然結果,每次調用構造函數Function()時都會解析函數體并且創建一個新東漢數對象。如果對構造函數的調用出現在一個循環中,或者出現在一個經常被調用的函數中,這種方法的效率非常低。另一個方面,函數直接量或出現在循環和函數中的嵌套函數不是在每次調用時都被重新編譯,而且每當遇到一個函數直接量時也不創建一個新的函數對象。

          Function()構造函數和函數之間量之間的第三點差別是,使用構造函數Function()創建的函數不使用詞法作用域,相反的,它們總是被當作頂級函數來編譯,就像下面代碼所說明的那樣:

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        比較常見的javascript中定義函數的區別_javascript技巧

        比較常見的javascript中定義函數的區別_javascript技巧:比較常見的javascript中定義函數的區別主要通過以下三個方面給大家講解,需要的朋友參考下吧 1:調用關鍵字function來構造 如: function distance(x1,x2,y1,y2) { var dx=x2-x1; var dy=y2-y1; return Math.sqrt(dx
        推薦度:
        標簽: 常用 區別 定義
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 四虎精品亚洲一区二区三区| 免费看黄视频网站| 亚洲人成国产精品无码| 亚洲精品宾馆在线精品酒店| 成人在线免费观看| 亚洲av永久无码精品秋霞电影秋 | 成人免费无码精品国产电影| 亚洲午夜福利在线视频| 成人爽A毛片免费看| 亚洲综合一区国产精品| 国内一级一级毛片a免费| 亚洲女子高潮不断爆白浆| 国产成人无码免费视频97| kk4kk免费视频毛片| 亚洲高清国产AV拍精品青青草原| 国产一精品一AV一免费| 亚洲黄色高清视频| 成人无遮挡裸免费视频在线观看 | 亚洲kkk4444在线观看| 午夜神器成在线人成在线人免费| 色九月亚洲综合网| 亚洲日本一区二区三区在线| 97视频免费观看2区| 亚洲 欧洲 日韩 综合在线| 免费中文字幕一级毛片| 精品成人免费自拍视频| 亚洲国产日韩在线成人蜜芽| 影音先锋在线免费观看| 一级特黄录像视频免费| 亚洲av无码av制服另类专区| 毛片大全免费观看| 国产特黄一级一片免费 | 国产精品免费久久久久电影网| 亚洲免费观看视频| 国色精品卡一卡2卡3卡4卡免费 | 亚洲av无码成人精品国产 | 一级成人a毛片免费播放| 亚洲私人无码综合久久网| 国产午夜亚洲不卡| 可以免费看黄的网站| 国产免费内射又粗又爽密桃视频 |