extJS4中文API 學(xué)習(xí)教程_第1頁
extJS4中文API 學(xué)習(xí)教程_第2頁
extJS4中文API 學(xué)習(xí)教程_第3頁
extJS4中文API 學(xué)習(xí)教程_第4頁
extJS4中文API 學(xué)習(xí)教程_第5頁
已閱讀5頁,還剩173頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Extjs4 學(xué)習(xí)指南Extjs4可用的學(xué)習(xí)資料少之又少,本文內(nèi)容大部分為網(wǎng)絡(luò)整理、方便學(xué)習(xí)者使用,如有出入以extjs4 api文檔為準(zhǔn)。 Extjs初步獲取Extjs下載extjs:可以從 獲得需要的extjs發(fā)布包及更多支持。搭建學(xué)習(xí)環(huán)境:假設(shè)您的機(jī)器已經(jīng)安裝myeclipse和tomcat,如果沒有請參閱其他相關(guān)資料。myeclipse建立新Web project項(xiàng)目Extjs4并且將extjs4.0.7壓縮包解壓后的全部文件復(fù)制到項(xiàng)目的Webroot目錄下Examples目錄為ext官方提供的例子程序,其中可能包涵php的代碼,錯誤信息可以暫時不理會。部署并且啟動tomcat,測試環(huán)

2、境是否可用。打開瀏覽器,輸入http:/localhost:8080/Ext4/index.html假設(shè)您的tomcat端口為8080您會看到以下界面,證明環(huán)境已經(jīng)搭建成功!查看api文檔 http:/localhost:8080/Ext4/docs/index.html查看示例頁面http:/localhost:8080/Ext4/examples/index.html測試?yán)娱_始. Webroot目錄下建立hellowword.js 輸入如下內(nèi)容:Ext.application( name: 'HelloExt', launch: function() Ext.create

3、('Ext.container.Viewport', layout: 'fit', items: title: 'Hello Ext', html : 'Hello! Welcome to Ext JS.' ); );再建立一個helloword.html,輸入如下內(nèi)容<html><head> <title>Hello Ext</title> <link rel="stylesheet" type="text/css" href=&quo

4、t;resources/css/ext-all.css"> <script type="text/javascript" src="ext-all.js"></script> <script type="text/javascript" src="HelloExt.js"></script></head><body></body></html>Html文件中只引入了一個css和2個js文件,注意引用路徑和

5、你建立文件路徑是否能匹配,如果路徑?jīng)]有問題的話,打開瀏覽器輸入http:/localhost:8080/Ext4/helloworld.html您將會看到瀏覽器里顯示一個panel,標(biāo)題是Hello Ext,內(nèi)容Hello! Welcome to Ext JS.,如果沒有,請查看是否有路徑不匹配。其他:在ExtJS里最常用的,應(yīng)該就是Ext.onReady和Ext.application這兩個個方法了,而且它也可能是你學(xué)習(xí)ExtJS所接觸的第一個方法,這個方法在當(dāng)前的DOM加載完畢后自動調(diào)用,保證頁面內(nèi)的所有元素都能被Script所引用.可以嘗試在這個方法中添加一條語句,看看頁面打開后是什么反

6、映 (先建立js和html文件,將如下代碼加入js文件中,html文件相應(yīng)引入對應(yīng)的js文件, 本文檔所有示例代碼均如此方式運(yùn)行以下不再重復(fù))Ext.onReady(function() alert('hello world!'); );上面的代碼將在頁面加載完畢后彈出一對話框,打印出'hello world!'字樣.獲取元素 還有一個常用的方法,就是獲取頁面上的元素了,ExtJS提供了一個get方法,可以根據(jù)ID取到頁面上的元素: var myDiv = Ext.get('myDiv'); 會取到頁面上ID為'myDiv'的元素

7、.如果使用Element.dom的方法,則可以直接操作底層的DOM節(jié)點(diǎn),Ext.get返回的則是一個Element對象. 在不能使用這種方式來獲取多個DOM的節(jié)點(diǎn),或是要獲取一些ID不一致,但又有相同特征的時候,可以通過選擇器來進(jìn)行獲取,比如要獲取頁面上所有的 標(biāo)簽,則可以使用: var ps = Ext.select('p'); 這樣你就可以對所要獲取的元素進(jìn)行操作了,select()方法返回的是Ext.CompositeElement對象,可以通過其中的each()方法對其所包含的節(jié)點(diǎn)進(jìn)行遍歷: ps.each(function(el) el.highlight(); );

8、當(dāng)然,如果你要是對獲取的所有元素進(jìn)行相同的操作,可以直接應(yīng)用于CompositeElement對象上,如: ps.highlight(); 或是: Ext.select('p').highlight(); 當(dāng)然,select參數(shù)還可以更復(fù)雜一些,其中可以包括W3C Css3Dom選取器,基本的XPath,HTML屬性等,詳細(xì)情況,可以查看DomQuery API的文檔,來了解細(xì)節(jié). 事件響應(yīng) 獲取到了元素,則可能會對一些元素的事件進(jìn)行一些處理,比如獲取一個按鈕,我們?yōu)樗砑右粋€單擊事件的響應(yīng): 復(fù)制代碼 代碼如下:Ext.onReady(function() Ext.get(&

9、#39;myButton').on('click', function() alert('You clicked the button!'); ); ); 當(dāng)然,你可以把事件的響應(yīng)加到通過select()方法獲取到的元素上: 復(fù)制代碼 代碼如下:Ext.select('p').on('click', function() alert('You clicked a paragraph!'); ); Widgets ExtJS還提供了豐富的UI庫來供大家使用. Extjs4布局詳解Fit布局在Fit布局中,子元

10、素將自動填滿整個父容器。注意:在fit布局下,對其子元素設(shè)置寬度是無效的。如果在fit布局中放置了多個組件,則只會顯示第一個子元素在Fit布局中,子元素將自動填滿整個父容器。注意:在fit布局下,對其子元素設(shè)置寬度是無效的。如果在fit布局中放置了多個組件,則只會顯示第一個子元素。典型的案例就是當(dāng)客戶要求一個window或panel中放置一個GRID組件,grid組件的大小會隨著父容器的大小改變而改變。示例代碼:Ext.application( name: 'HelloExt', launch: function() Ext.create('Ext.container.

11、Viewport', layout: 'fit', items: title: 'Hello Ext', html : 'Hello! Welcome to Ext JS.' ); );Border布局border布局:border布局也稱邊界布局,他將頁面分隔為west,east,south,north,center這五個部分,我們需要在在其items中指定使用region參數(shù)為其子元素指定具體位置。border布局:border布局也稱邊界布局,他將頁面分隔為west,east,south,north,center這五個部分,我們需要

12、在在其items中指定使用region參數(shù)為其子元素指定具體位置。注意:north和south部分只能設(shè)置高度(height),west和east部分只能設(shè)置寬度(width)。north south west east區(qū)域變大,center區(qū)域就變小了。參數(shù) split:true 可以調(diào)整除了center四個區(qū)域的大小。參數(shù) collapsible:true 將激活折疊功能, title必須設(shè)置,因?yàn)檎郫B按鈕是出現(xiàn)標(biāo)題部分的。center 區(qū)域是必須使用的,而且center 區(qū)域不允許折疊。Center區(qū)域會自動填充其他區(qū)域的剩余空間。尤其在Extjs4.0中,當(dāng)指定布局為border時,沒

13、有指定center區(qū)域時,會出現(xiàn)報(bào)錯信息。示例代碼:Ext.application(name:"HelloExt", launch:function () Ext.create('Ext.panel.Panel', width: 1024, height: 720, layout: 'border', items: region: 'south', xtype: 'panel', height: 20, split: false, html: '歡迎登錄!', margins: '0 5

14、 5 5' , title: 'West Region is collapsible', region:'west', xtype: 'panel', margins: '5 0 0 5', width: 200, collapsible: true, id: 'west-region-container', layout: 'fit' , title: 'Center Region', region: 'center', xtype: 'panel&

15、#39;, layout: 'fit', margins: '5 5 0 0', html:'在Extjs4中,center區(qū)域必須指定,否則會報(bào)錯。' , renderTo: Ext.getBody() ););Accordion布局accordion布局:accordion布局也稱手風(fēng)琴布局,在accordion布局下,在任何時間里,只有一個面板處于激活狀態(tài)。其中每個面邊都支持展開和折疊。accordion布局:accordion布局也稱手風(fēng)琴布局,在accordion布局下,在任何時間里,只有一個面板處于激活狀態(tài)。其中每個面邊都支持展開和折

16、疊。注意:只有Ext.Panels 和所有Ext.panel.Panel 子項(xiàng),才可以使用accordion布局。示例代碼:Ext.application(name:"HelloExt", launch:function () Ext.create('Ext.panel.Panel', title: 'Accordion Layout', width: 300, height: 300, x:20, y:20, layout:'accordion', defaults: bodyStyle: 'padding:15px

17、' , layoutConfig: titleCollapse: false, animate: true, activeOnTop: true , items: title: 'Panel 1', html: 'Panel content!' , title: 'Panel 2', html: 'Panel content!' , title: 'Panel 3', html: 'Panel content!' , renderTo: Ext.getBody() ););Card布局Car

18、d布局:這種布局用來管理多個子組件,并且在任何時刻只能顯示一個子組件。這種布局最常用的情況是向?qū)J剑簿褪俏覀兯f的分布提交。Card布局:這種布局用來管理多個子組件,并且在任何時刻只能顯示一個子組件。這種布局最常用的情況是向?qū)J剑簿褪俏覀兯f的分布提交。Card布局可以使用layout:'card'來創(chuàng)建。注意:由于此布局本身不提供分步導(dǎo)航功能,所以需要用戶自己開發(fā)該功能。由于只有一個面板處于顯示狀態(tài),那么在初始時,我們可以使用setActiveItem功能來指定某一個面板的顯示。當(dāng)要顯示下一個面板或者上一個面板的時候,我們可以使用getNext()或getPrev()

19、來得到下一個或上一個面板。然后使用setDisabled方法來設(shè)置面板的顯示。另外,如果面板中顯示的是FORM布局,我們在點(diǎn)擊下一個面板的時候,處理FORM中提交的元素,通過AJAX將表單中的內(nèi)容保存到數(shù)據(jù)庫中或者SESSION中。下面的示例代碼展示了一個基本的Card布局,布局中并沒有包含form元素,具體情況,還要根據(jù)實(shí)際情況進(jìn)行處理:Ext.application( name: 'HelloExt', launch: function() var navigate = function(panel, direction) var layout = panel.getLay

20、out(); layoutdirection(); Ext.getCmp('move-prev').setDisabled(!layout.getPrev(); Ext.getCmp('move-next').setDisabled(!layout.getNext(); ; Ext.create('Ext.panel.Panel', title: 'Card布局示例', width: 300, height: 202, layout: 'card', activeItem: 0, x:30, y:60, bodyS

21、tyle: 'padding:15px', defaults: border: false, bbar: id: 'move-prev', text: 'Back', handler: function(btn) navigate(btn.up("panel"), "prev"); , disabled: true , '->', id: 'move-next', text: 'Next', handler: function(btn) navigate

22、(btn.up("panel"), "next"); , items: id: 'card-0', html: '<h1>Welcome to the Wizard!</h1><p>Step 1 of 3</p>' , id: 'card-1', html: '<p>Step 2 of 3</p>' , id: 'card-2', html: '<h1>Congratulations!

23、</h1><p>Step 3 of 3 - Complete</p>' , renderTo: Ext.getBody() ); );Anchor布局anchor布局將使組件固定于父容器的某一個位置,使用anchor布局的子組件尺寸相對于容器的尺寸,即父容器容器的大小發(fā)生變化時,使用anchor布局的組件會根據(jù)規(guī)定的規(guī)則重新渲染位置和大小。anchor布局將使組件固定于父容器的某一個位置,使用anchor布局的子組件尺寸相對于容器的尺寸,即父容器容器的大小發(fā)生變化時,使用anchor布局的組件會根據(jù)規(guī)定的規(guī)則重新渲染位置和大小。AnchorLayou

24、t布局沒有任何的直接配置選項(xiàng)(繼承的除外),然而在使用AnchorLayout布局時,其子組件都有一個anchor屬性,用來配置此子組件在父容器中所處的位置。anchor屬性為一組字符串,可以使用百分比或者是-數(shù)字來表示。配置字符串使用空格隔開,例如anchor:'75% 25%',表示寬度為父容器的75%,高度為父容器的25%anchor:'-300 -200',表示組件相對于父容器右邊距為300,相對于父容器的底部位200anchor:'-250 20%',混合模式,表示組件黨對于如容器右邊為250,高度為父容器的20%示例代碼:Ext.ap

25、plication( name: 'HelloExt', launch: function() Ext.create('Ext.Panel', width: 500, height: 400, title: "Anchor布局", layout: 'anchor', x:60, y:80, renderTo: Ext.getBody(), items: xtype: 'panel', title: '75% Width and 25% Height', anchor: '75% 25%&

26、#39; , xtype: 'panel', title: 'Offset -300 Width & -200 Height', anchor: '-300 -200' , xtype: 'panel', title: 'Mixed Offset and Percent', anchor: '-250 30%' ); );Absolute布局Absolute布局繼承Ext.layout.container.Anchor 布局方式,并增加了X/Y配置選項(xiàng)對子組件進(jìn)行定位,Absolute布局的

27、目的是為了擴(kuò)展布局的屬性,使得布局更容易使用Absolute布局繼承Ext.layout.container.Anchor 布局方式,并增加了X/Y配置選項(xiàng)對子組件進(jìn)行定位,Absolute布局的目的是為了擴(kuò)展布局的屬性,使得布局更容易使用。Ext.application(name:"HelloExt", launch:function () Ext.create('Ext.form.Panel', title: 'Absolute布局', width: 300, height: 275, x:20, y:90, layout:'ab

28、solute', defaultType: 'textfield', items: x: 10, y: 10, xtype:'label', text: 'Send To:' , x: 80, y: 10, name: 'to', anchor:'90%' , x: 10, y: 40, xtype:'label', text: 'Subject:' , x: 80, y: 40, name: 'subject', anchor: '90%'

29、, x:0, y: 80, xtype: 'textareafield', name: 'msg', anchor: '100% 100%' , renderTo: Ext.getBody() ););Column布局Column布局一般被稱為列布局,這種布局的目的是為了創(chuàng)建一個多列的格式。其中每列的寬度,可以為其指定一個百分比或者是一個固定的寬度。Column布局一般被稱為列布局,這種布局的目的是為了創(chuàng)建一個多列的格式。其中每列的寬度,可以為其指定一個百分比或者是一個固定的寬度。Column布局沒有直接的配置選項(xiàng)(繼承的除外),但Column布

30、局支持一個columnWidth屬性,在布局過程中,使用columnWidth指定每個面板的寬度。注意:使用Column布局布局時,其子面板的所有columnWidth值加起來必須介于01之間或者是所占百分比。他們的總和應(yīng)該是1。另外,如果任何子面板沒有指定columnWidth值,那么它將占滿剩余的空間。 示例代碼:Ext.application(name:"HelloExt", launch:function () Ext.create('Ext.panel.Panel', title: 'Column Layout - 按比例'

31、;, width: 350, height: 250, x:20, y:100, layout:'column', items: title: 'Column 1', columnWidth: .25 , title: 'Column 2', columnWidth: .55 , title: 'Column 3', columnWidth: .20 , renderTo: Ext.getBody() ););Extjs4文檔閱讀ExtJS4使用新的類機(jī)制進(jìn)行了大量的重構(gòu)。為了支撐新的架構(gòu),ext4幾乎重寫了每一個類,因此最好先好

32、好的理解一下新的架構(gòu),再開始編碼。本文適合想在extjs4中擴(kuò)展現(xiàn)有類或者創(chuàng)建新類的開發(fā)者。其實(shí),不管是想擴(kuò)展還是使用,都建議您仔細(xì)閱讀一下(如果E文好的,建議您還是閱讀英文原文。鏈接地址是: )。文章共分4個部分,建議每一部分都仔細(xì)研究下,對之后的開發(fā)工作,會有意想不到的好處。系統(tǒng)類(class system)Api文檔路徑:http:/localhost/Ext4/docs/index.html#!/guide/class_system第一部分:概述。說明了強(qiáng)大的類機(jī)制的必要性第二部分:編碼規(guī)范。討論類、方法、屬性、變量和文件命名第三部分:DIY。詳細(xì)的編碼示例第四部分:錯誤處理和調(diào)試。提

33、供一些有用的調(diào)試和異常處理技巧概述ExtJS4擁有超過300個的類.迄今為止,我們的社區(qū)擁有超過20萬來自世界各地,使用不同后臺語言的開發(fā)者.要在這種規(guī)模的框架上提供具有以下特點(diǎn)的架構(gòu),需要面臨巨大的挑戰(zhàn):1、簡單易學(xué)。2,快速開發(fā)、調(diào)試簡單、部署容易。3,良好的結(jié)構(gòu)、可擴(kuò)展性和可維護(hù)性。編碼和規(guī)范*在所有類、命名空間(namespace)和文件名中使用一致的命名約定,有助于保持代碼的良好結(jié)構(gòu)和可讀性。1) Classes類名只能包含字母和數(shù)字。允許包含數(shù)字,但是大部分情況下不建議使用,除非這些數(shù)字是專業(yè)術(shù)語的一部分。不要使用下劃線,連字符等非數(shù)字字母符號。例如:MyCompany.usefu

34、l_util.Debug_Toolbar is discouraged MyCompany.util.Base64 is acceptable類名應(yīng)該包含在使用點(diǎn)號分隔的命名空間中。至少,要有一個頂級命名空間。例如:MyCompany.data.CoolProxyMyCompany.Application頂級命名空間和實(shí)際的類名應(yīng)使用駝峰命名(CamelCased),其他則為小寫。例如:MyCompany.form.action.AutoLoad不是Sencha開發(fā)的類(即不是Ext自帶的)不要使用Ext做為頂級命名空間。縮寫也要遵守以上的駝峰式命名約定。例如:Ext.data.JsonPro

35、xy 代替 Ext.data.JSONProxy MyCompany.util.HtmlParser代替MyCompary.parser.HTMLParser MyCompany.server.Http代替MyCompany.server.HTTP2) 代碼文件類名對應(yīng)類所在的文件(包括文件名)。因此,每個文件應(yīng)該只包含一個類(類名和文件名一樣)。例如:Ext.util.Observable  存放在 path/to/src/Ext/util/Observable.jsExt.form.action.Submit   存放在  path/to/src/E

36、xt/form/action/Submit.jsMyCompany.chart.axis.Numeric   存放在  path/to/src/MyCompany/chart/axis/Numeric.jspath/to/src 是你的應(yīng)用所在目錄。所有類都應(yīng)該在這個通用根目錄下,并且使用適當(dāng)?shù)拿臻g以利于開發(fā)、維護(hù)和部署。3)方法和變量和類命名一樣,方法和變量也只能包含字母和數(shù)字。數(shù)字同樣是允許但不建議,除非屬于專業(yè)術(shù)語。不要使用下劃線,連字符等任何非字母數(shù)字符號。方法和變量名一樣使用駝峰式命名,縮寫也一樣。舉例合適的方法名:   

37、0;                 encodeUsingMd5() getHtml() 代替 getHTML()                    getJsonResponse() 代替 getJSONResponse() 

38、60;                  parseXmlContent() 代替parseXMLContent()合適的變量名:                     var isGoodName   &#

39、160;                var base64Encoder                    var xmlReader          

40、          var httpServer4)屬性類屬性名稱遵循以上的變量和方法命名約定.除非是靜態(tài)的常量.類的靜態(tài)屬性常量應(yīng)該全部大寫。例如:Ext.MessageBox.YES = "Yes" Ext.MessageBox.NO = "No" MyCompany.alien.Math.PI = "4.13" DIY親自動手(示例代碼)聲明Extjs4之前的方式如果你曾經(jīng)使用過舊版本的extjs,那么你肯定熟悉使用Ext.extend來創(chuàng)

41、建一個類: 1: var MyWindow=Ext.extend(Object,.);這個方法很容易從現(xiàn)有的類中繼承創(chuàng)建新的類.相比直接繼承,我們沒有好用的API用于類創(chuàng)建的其他方面,諸如:配置、靜態(tài)方法、混入(Mixins)。呆會我們再來詳細(xì)的重新審視這些方面。現(xiàn)在,讓我們來看看另一個例子:1: My.cool.Window = Ext.extend(Ext.Window, . );在這個例子中,我們創(chuàng)建我們的新類,繼承Ext.Window,放在命名空間中。我們有兩個問題要解決:1,在我們訪問My.cool的Window屬性之前,My.cool必須是一個已有的對象.2,Ext.Window必

42、須在引用之前加載.第一個問題通常使用Espace(別名Ext.ns)來解決.該方法遞歸創(chuàng)建(如果該對象不存在)這些對象依賴.比較繁瑣枯燥的部分是你必須在Ext.extend之前執(zhí)行Ext.ns來創(chuàng)建它們. 1: Ext.ns('My.cool'); 2: My.cool.Window = Ext.extend(Ext.Window, . );第二個問題不好解決,因?yàn)镋xt.Window可能直接或間接的依賴于許多其他的類,依賴的類可能還依賴其它類.出于這個原因,在ext4之前,我們通常引入整個ext-all.js,即使是我們只需要其中的一小部分.Extjs4新的方式

43、在Extjs4中,你只需要使用一個方法就可以解決這些問題:Ext.define.以下是它的基本語法:1: Ext.define(className, members, onClassCreated);className: 類名 members:代表類成員的對象字面量(鍵值對,json) onClassCreated: 可選的回調(diào)函數(shù),在所有依賴都加載完畢,并且類本身建立后觸發(fā).由于類創(chuàng)建的新的異步特性,這個回調(diào)函數(shù)在很多情況下都很有用.這些在第四節(jié)中將進(jìn)一步討論例如:Ext.define('My.sample.Person', name: 'Unknown',

44、  constructor: function(name) if (name) = name;   return this; , eat: function(foodType) alert( + " is eating: " + foodType);   return this; );   var aaron = Ext.create('My.sample.Person', 'Aaron'); aaron.eat("Salad"); 程序執(zhí)行結(jié)果

45、會彈出alert窗口顯示"Aaron is eating: Salad".注意我們使用Ext.create()方法創(chuàng)建了My.sample.Person類的一個新實(shí)例.我們也可以使用新的關(guān)鍵字(new My.sample.Person()來創(chuàng)建.然而,建議養(yǎng)成始終用Ext.create來創(chuàng)建類示例的習(xí)慣,因?yàn)樗试S你利用動態(tài)加載的優(yōu)勢.更多關(guān)于動態(tài)加載信息,請看入門指南:入門指南配置在ExtJS 4 ,我們引入了一個專門的配置屬性,用于提供在類創(chuàng)建前的預(yù)處理功能.特性包括:配置完全封裝其他類成員 getter和setter.如果類沒有定義這些方法,在創(chuàng)建類時將自動生成配置的

46、屬性的getter和setter方法。 同樣的,每個配置的屬性自動生成一個apply方法.自動生成的setter方法內(nèi)部在設(shè)置值之前調(diào)用apply方法.如果你要在設(shè)置值之前自定義自己的邏輯,那就重載apply方法.如果apply沒有返回值,則setter不會設(shè)置值.看下面applyTitle的例子:Ext.define('My.own.Window', /* readonly */ isWindow: true,   config: title: 'Title Here', bottomBar: enabled: true, height: 50, r

47、esizable: false ,   constructor: function(config) this.initConfig(config);   return this; ,   applyTitle: function(title) if (!Ext.isString(title) | title.length = 0) alert('Error: Title must be a valid non-empty string'); else return title; ,   applyBottomBar: function(b

48、ottomBar) if (bottomBar && bottomBar.enabled) if (!this.bottomBar) return Ext.create('My.own.WindowBottomBar', bottomBar); else this.bottomBar.setConfig(bottomBar); );以下是它的用法:var myWindow = Ext.create('My.own.Window', title: 'Hello World', bottomBar: height: 60 );aler

49、t(myWindow.getTitle(); / alerts "Hello World"myWindow.setTitle('Something New');alert(myWindow.getTitle(); / alerts "Something New"myWindow.setTitle(null); / alerts "Error: Title must be a valid non-empty string"myWindow.setBottomBar( height: 100 ); / Bottom bar

50、's height is changed to 100Statics靜態(tài)成員可以使用statics配置項(xiàng)來定義Ext.define('Computer', statics: instanceCount: 0, factory: function(brand) / 'this' in static methods refer to the class itself return new this(brand: brand); , config: brand: null , constructor: function(config) this.initCon

51、fig(config); / the 'self' property of an instance refers to its class this.self.instanceCount +; return this; );var dellComputer = Computer.factory('Dell');var appleComputer = Computer.factory('Mac');alert(appleComputer.getBrand(); / using the auto-generated getter to get the value of a config property. Alerts "Mac"alert(Computer.instanceCount); / Alerts "2"錯誤處理&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論