資源描述:
《使用面向?qū)ο蟮募夹g(shù)創(chuàng)建高級 Web 應(yīng)用程序 畢業(yè)論文外文文獻翻譯》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、附錄畢業(yè)設(shè)計(論文)外文資料翻譯院(系):計算機科學(xué)與工程學(xué)院專業(yè):計算機科學(xué)與技術(shù)班級:070610姓名:學(xué)號:070610316外文出處:附件:1.譯文;2.原文2011年4月27日使用面向?qū)ο蟮募夹g(shù)創(chuàng)建高級Web應(yīng)用程序面向?qū)ο缶幊?OOP)是一種流行的編程方法,很多JavaScript庫中都使用這種方法,以便更好地管理和維護基本代碼。JavaScript支持OOP,但與諸如C++、C#或VisualBasic等流行的Microsoft.NETFramework兼容語言相比,它支持OOP的方式非常不同,因
2、此主要使用這些語言的開發(fā)人員開始可能會覺得在JavaScript中使用OOP很奇怪而且不直觀。我寫本文就是為了深入討論JavaScript語言實際上如何支持面向?qū)ο缶幊?,以及您如何使用這一支持在JavaScript中高效地進行面向?qū)ο箝_發(fā)。下面首先討論對象(還能先討論其他別的什么呢?)。JavaScript對象是詞典在C++或C#中,在談?wù)搶ο髸r,是指類或結(jié)構(gòu)的實例。對象有不同的屬性和方法,具體取決于將它們實例化的模板(即類)。而JavaScript對象卻不是這樣。在JavaScript中,對象只是一組名稱/值
3、對,就是說,將JavaScript對象視為包含字符串關(guān)鍵字的詞典。我們可以使用熟悉的“.”(點)運算符或“[]”運算符,來獲得和設(shè)置對象的屬性,這是在處理詞典時通常采用的方法。以下代碼段:varuserObject=newObject();userObject.lastLoginTime=newDate();alert(userObject.lastLoginTime);功能與下面的代碼段完全相同:varuserObject={};//equivalenttonewObject()userObject[“l(fā)as
4、tLoginTime”]=newDate();alert(userObject[“l(fā)astLoginTime”]);我們還可以直接在userObject的定義中定義lastLoginTime屬性,如下所示:varuserObject={“l(fā)astLoginTime”:newDate()};alert(userObject.lastLoginTime);注意,它與C#3.0對象初始值非常相似。而且,熟悉Python的人會發(fā)現(xiàn)在第二和第三個代碼段中實例化userObject的方法與在Python中指定詞典的方法完全
5、相同。唯一的差異是JavaScript對象/詞典只接受字符串關(guān)鍵字,而不是像Python詞典那樣接受可哈希化的對象。這些示例還顯示JavaScript對象比C++或C#對象具有更大的可延展性。您不必預(yù)先聲明屬性lastLoginTime如果userObject沒有該名稱的屬性,該屬性將被直接添加到userObject。如果記住JavaScript對象是詞典,您就不會對此感到吃驚了,畢竟,我們一直在向詞典添加新關(guān)鍵字(和其各自的值)。6這樣,我們就有了對象屬性。對象方法呢?同樣,JavaScript與C++/C#
6、不同。若要理解對象方法,首先需要仔細(xì)了解一下JavaScript函數(shù)。JavaScript函數(shù)是最棒的在很多編程語言中,函數(shù)和對象通常被視為兩樣不同的東西。在JavaScript中,其差別很模糊—JavaScript函數(shù)實際上是具有與它關(guān)聯(lián)的可執(zhí)行代碼的對象。請如此看待普通函數(shù):functionfunc(x){alert(x);}func(“blah”);這就是通常在JavaScript中定義函數(shù)的方法。但是,還可以按以下方法定義該函數(shù),您在此創(chuàng)建匿名函數(shù)對象,并將它賦給變量functionvarfunc=fu
7、nction(x){alert(x);};func(“blah2”);甚至也可以像下面這樣,使用Function構(gòu)造函數(shù):varfunc=newFunction(“x”,“alert(x);”);func(“blah3”);此示例表明函數(shù)實際上只是支持函數(shù)調(diào)用操作的對象。最后一個使用Function構(gòu)造函數(shù)來定義函數(shù)的方法并不常用,但它展示的可能性非常有趣,因為您可能注意到,該函數(shù)的主體正是Function構(gòu)造函數(shù)的String參數(shù)。這意味著,您可以在運行時構(gòu)造任意函數(shù)。構(gòu)造函數(shù)而不是類前面提到過,有關(guān)Java
8、ScriptOOP的最奇怪的事情是,JavaScript不像C#或C++那樣,它沒有類。在C#中,在執(zhí)行類似下面的操作時:Dogspot=newDog();將返回一個對象,該對象是Dog類的實例。但在JavaScript中,本來就沒有類。與訪問類最近似的方法是定義構(gòu)造函數(shù),如下所示:functionDogConstructor(name){this.name=name;this.res