国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答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中匿名函數的用法及優缺點詳解(圖文教程)

來源:懂視網 責編:小OO 時間:2020-11-27 19:48:31
文檔

JavaScript中匿名函數的用法及優缺點詳解(圖文教程)

匿名函數可以有效的保證在頁面上寫入Javascript,而不會造成全局變量的污染。這在給一個不是很熟悉的頁面增加Javascript時非常有效,也很優美。一、什么是匿名函數。在Javascript定義一個函數一般有如下三種方式。函數關鍵字(function)語句。function fnMethodName(x){alert(x);}。函數字面量(Function Literals)。var fnMethodName = function(x){alert(x);}。Function()構造函數。var fnMethodName = new Function(';x';,';alert(x);';)。上面三種方法定義了同一個方法函數fnMethodName。
推薦度:
導讀匿名函數可以有效的保證在頁面上寫入Javascript,而不會造成全局變量的污染。這在給一個不是很熟悉的頁面增加Javascript時非常有效,也很優美。一、什么是匿名函數。在Javascript定義一個函數一般有如下三種方式。函數關鍵字(function)語句。function fnMethodName(x){alert(x);}。函數字面量(Function Literals)。var fnMethodName = function(x){alert(x);}。Function()構造函數。var fnMethodName = new Function(';x';,';alert(x);';)。上面三種方法定義了同一個方法函數fnMethodName。

下面我就為大家帶來一篇JavaScript中匿名函數的用法及優缺點詳解。現在就分享給大家,也給大家做個參考。

匿名函數可以有效的保證在頁面上寫入Javascript,而不會造成全局變量的污染。

這在給一個不是很熟悉的頁面增加Javascript時非常有效,也很優美。

一、什么是匿名函數?

在Javascript定義一個函數一般有如下三種方式:

函數關鍵字(function)語句:

function fnMethodName(x){alert(x);}

函數字面量(Function Literals):

var fnMethodName = function(x){alert(x);}

Function()構造函數:

var fnMethodName = new Function('x','alert(x);')

上面三種方法定義了同一個方法函數fnMethodName,

第1種就是最常用的方法,后兩種都是把一個函數復制給變量fnMethodName,而這個函數是沒有名字的,即匿名函數。

實際上,相當多的語言都有匿名函數。

二、函數字面量和Function()構造函數的區別

雖然函數字面量是一個匿名函數,但語法允許為其指定任意一個函數名,當寫遞歸函數時可以調用它自己,使用Function()構造函數則不行。

var f = function fact(x) { if (x < = 1) return 1; else return x*fact(x-1); };

Function()構造函數允許運行時Javascript代碼動態的創建和編譯。在這個方式上它類似全局函數eval()。

Function()構造函數每次執行時都解析函數主體,并創建一個新的函數對象。所以當在一個循環或者頻繁執行的函數中調用Function()構造函數的效率是非常低的。相反,函數字面量卻不是每次遇到都重新編譯的。

用Function()構造函數創建一個函數時并不遵循典型的作用域,它一直把它當作是頂級函數來執行。

var y = "global";

function constructFunction() { var y = "local"; return new Function("return y"); // 無法獲取局部變量 } alert(constructFunction()()); // 輸出 “global”和函數關鍵字定義相比Function()構造器有自己的特點且要難以使用的多,

所以這項技術通常很少使用。

而函數字面量表達式和函數關鍵字定義非常接近。

考慮前面的區別,雖然有消息說字面量的匿名函數在OS X 10.4.3下的某些webkit的引擎下有bug,

但我們平常所說的匿名函數均指采用函數字面量形式的匿名函數。

三、匿名函數的代碼模式

錯誤模式:其無法工作,瀏覽器會報語法錯。

function(){ alert(1); }();

函數字面量:首先聲明一個函數對象,然后執行它。

(function(){ alert(1); } ) ( );

優先表達式:

( function(){ alert(2); } ( ) );

void操作符:

void function(){ alert(3); }()這三種方式是等同的,hedger wang因為個人原因比較喜歡第3種,而在實際應用中我看到的和使用的都是第1種。

四、匿名函數的應用

《Javascript的一種模塊模式》中的第一句話就是“全局變量是魔鬼”。

配合var關鍵字,匿名函數可以有效的保證在頁面上寫入Javascript,而不會造成全局變量的污染。

這在給一個不是很熟悉的頁面增加Javascript時非常有效,也很優美。

實際上,YUI以及其相應的范例中大量使用匿名函數,其他的Javascript庫中也不乏大量使用。

Javascript的函數式編程(functional programming)的基石。

具體請看《用函數式編程技術編寫優美的 JavaScript》和《函數式JavaScript編程指南》。

上面是我整理給大家的,希望今后會對大家有幫助。

相關文章:

javascript prototype原型詳解(基礎課程)

JavaScript cookie詳解及簡單實例應用(圖文教程)

javascript 注釋代碼的幾種方法(圖文教程)

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

文檔

JavaScript中匿名函數的用法及優缺點詳解(圖文教程)

匿名函數可以有效的保證在頁面上寫入Javascript,而不會造成全局變量的污染。這在給一個不是很熟悉的頁面增加Javascript時非常有效,也很優美。一、什么是匿名函數。在Javascript定義一個函數一般有如下三種方式。函數關鍵字(function)語句。function fnMethodName(x){alert(x);}。函數字面量(Function Literals)。var fnMethodName = function(x){alert(x);}。Function()構造函數。var fnMethodName = new Function(';x';,';alert(x);';)。上面三種方法定義了同一個方法函數fnMethodName。
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 亚洲欧美视频一区 | 亚洲三级在线 | 91久久综合九色综合欧美98 | 一道精品视频一区二区三区男同 | 精品视频在线观看视频免费视频 | 国产一区二区免费视频 | 亚洲欧美日本在线观看 | 国内精品久久久久久久aa护士 | 久久国产成人精品国产成人亚洲 | 国产成人精品综合久久久 | 五十路息子 | 91精品欧美 | 久久国产精品高清一区二区三区 | 久久精品一区二区国产 | 亚洲色图另类 | 免费看特级淫片日本 | 日韩高清毛片 | 中文字幕一区二区三区在线观看 | 国产一级特黄a大片99 | 欧美v亚洲v国产v | 日韩高清一区 | 亚洲视频在线观看免费 | 欧美视频日韩视频 | 亚洲国产成人久久一区二区三区 | 国产精品久久久久a影院 | 日韩国产另类 | 成人久久久观看免费毛片 | 国产精品免费观看网站 | 免费视频一区 | 国产精选一区二区 | 一级全黄60分钟免费网站 | 欧美日韩亚洲国产 | 成人毛片一区二区三区 | 伊人一区 | 伊人网免费视频 | 免费观看性欧美大片 | 国产精品久久久久久久牛牛 | 国产精品合集一区二区三区 | 91欧美亚洲| 欧美精品一区二区三区免费播放 | a级黄色毛片 |