資源描述:
《JavaScript匿名函數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、主講人:趙兵日期:2013.06.23遠(yuǎn)光軟件股份有限公司JavaScript(匿名函數(shù))匿名函數(shù)的應(yīng)用遞歸閉包模仿塊級(jí)作用域私有變量匿名函數(shù)匿名函數(shù):沒有名字的函數(shù)。(lambda)函數(shù)區(qū)別:匿名函數(shù)在代碼執(zhí)行到那一行才有定義。遞歸遞歸函數(shù):函數(shù)通過名字調(diào)用自身。arguments.callee:指向正在執(zhí)行的函數(shù)的指針。閉包閉包:是指有權(quán)訪問另一個(gè)函數(shù)作用域中變量的函數(shù)。外部函數(shù)中的變量propertyName被內(nèi)部函數(shù)訪問。理解作用域鏈創(chuàng)建compare函數(shù)時(shí):創(chuàng)建一個(gè)預(yù)先包含全局變量對(duì)象的作用域鏈,被保存在內(nèi)
2、部的[[Scope]]屬性中。調(diào)用compare函數(shù)時(shí):為函數(shù)創(chuàng)建一個(gè)活動(dòng)對(duì)象,并被推入執(zhí)行環(huán)境作用域鏈的前端。(函數(shù)執(zhí)行完畢后,會(huì)被銷毀)理解作用域鏈10resultcomparethiswindowundefinedvalue1argumentsthiswindow[5,10]5value210compare[[Scope]]ScopeChainGlobalScopeCompareScope全局變量對(duì)象本地活動(dòng)對(duì)象閉包的作用域鏈createFunction[[Scope]][[Scope]]10ScopeChai
3、n21ScopeChain(anonymous)0resultthiswindowundefinedGlobalScopepropertyNameargumentsthiswindow[“name”]“name”createFunctionScopeobject1argumentsthiswindow[]undefined(anonymous)Scopeobject2undefinedcreateFunction閉包的作用域鏈//解除對(duì)匿名函數(shù)的引用(以便釋放內(nèi)存)compareNames=null;閉包與變量閉包與
4、變量this對(duì)象this對(duì)象模仿塊級(jí)作用域JavaScript沒有塊級(jí)作用域的概念。模仿塊級(jí)作用域匿名函數(shù)模仿塊級(jí)作用域。私有變量任何在函數(shù)中定義的變量,都可以認(rèn)為是私有變量。缺點(diǎn):每個(gè)實(shí)例都會(huì)創(chuàng)建同樣一組新方法。靜態(tài)私有變量區(qū)別:私有作用域中定義由實(shí)例共享的私有變量或函數(shù),且特權(quán)方法定義于原型之上。模塊模式模塊模式:為單例創(chuàng)建私有變量和特權(quán)方法。單例:只有一個(gè)實(shí)例的對(duì)象。JavaScript以對(duì)象字面量的方式來創(chuàng)建單例對(duì)象:模塊模式模塊模式通過為單例添加私有變量和特權(quán)方法能夠使其得到增強(qiáng)。模塊模式這種模式在需要對(duì)單
5、例進(jìn)行某些初始化,同時(shí)又需要維護(hù)其私有變量時(shí)是非常有用的。增強(qiáng)的模塊模式這種模式適合單例必須是某種類型的實(shí)例。謝謝!版權(quán)聲明遠(yuǎn)光軟件股份有限公司擁有本套模版的版權(quán)及最終解釋權(quán),沒有遠(yuǎn)光軟件股份有限公司的特別許可,任何人不能以任何形式或?yàn)槿魏文康膹?fù)制或傳播本文檔的任何部分。本文檔中包含的信息如有更改,恕不另行通知。由遠(yuǎn)光軟件股份有限公司所銷售的某些軟件產(chǎn)品包含有其它軟件供應(yīng)商版權(quán)所有的軟件組件。Microsoft?、WINDOWS?、NT?、EXCEL?、Word?、PowerPoint?和SQLServer?是微軟公
6、司的注冊(cè)商標(biāo)。IBM?、DB2?、DB2通用數(shù)據(jù)庫、OS/2?、ParallelSysplex?、MVS/ESA、AIX?、S/390?、AS/400?、OS/390?、OS/400?、iSeries、pSeries、xSeries、zSeries、z/OS、AFP、IntelligentMiner、WebSphere?、Netfinity?、Tivoli?、Informix和Informix?動(dòng)態(tài)ServerTM是IBM公司在美國或其他公司的商標(biāo)。ORACLE?是ORACLE公司的注冊(cè)商標(biāo)。UNIX?、X/Open
7、?、OSF/1?和Motif?是OpenGroup的注冊(cè)商標(biāo)。本文檔提到的所有其它產(chǎn)品和服務(wù)名稱是它們各自公司的商標(biāo)。