超碰人人人人人,色婷婷综合久久久久中文一区二区,国产-第1页-浮力影院,欧美老妇另类久久久久久

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Javascript面向?qū)ο缶幊?/h3>
admin
2010年7月14日 1:40 本文熱度 5906
[b][color=#0000ff]---->什么是類和對(duì)象[br][/color][/b] 這是所有面向?qū)ο缶幊讨氨仨毰靼椎?[br] 所謂類:簡(jiǎn)單地說(shuō)就是模板,說(shuō)的專業(yè)一些,是一類具有某種性質(zhì)的物的集合.比如:人就是一個(gè)類,車(chē)也是一個(gè)類,等等.[br] 所謂對(duì)象:就是類的具體實(shí)現(xiàn).如上面所說(shuō),人是一個(gè)類,一個(gè)具體的人就是一個(gè)對(duì)象,比如張三.[br] [br] 對(duì)象是類的實(shí)例化后的結(jié)果.javascript中使用new關(guān)鍵字來(lái)實(shí)例化一個(gè)類,生成一個(gè)對(duì)象.[br] 例子:[br] function people(){ //javascript中一個(gè)function也是一個(gè)類,這里我們建立一個(gè)空的類people[br] }[br] [br] var zhangsan=new people; //實(shí)例化生成一個(gè)對(duì)象張三[br][br][b][color=#0000ff]---->一個(gè)具體形象的例子[/color][/b][br] /*-->最簡(jiǎn)單的類:[br] *people類[br] * 屬性:性別,年齡,姓名[br] * 方法:說(shuō)話[br] */[br] function people(name,sex,age){[br] this.name=name;[br] this.sex=sex;[br] this.age=age;[br] this.say=function(){[br] return "我叫"+this.name;[br] }[br] }[br] [br] 使用時(shí):[br] var zhangsan=new people;[br] alert(zhangsan.say());[br] var lisi=new people;[br] alert(lizi.say());[br] 說(shuō)明:[br] 上面使用了this關(guān)鍵字,this總是指向當(dāng)前的對(duì)象,在上面例子中,zhangsan.say中具有this.name,這里的this是當(dāng)前的對(duì)象zhangsan.后面lisi.say則是指向當(dāng)前對(duì)象lisi[br] 對(duì)象具有屬性,上面的name,sex和age就是對(duì)象的屬性.我們這樣可以訪問(wèn),如lisi.name,zhangsan.age[br] 對(duì)象還具有方法,比如上面的say.方法是通過(guò)構(gòu)造函數(shù)實(shí)現(xiàn)的.使用時(shí),如上面,用lisi.say(),zhangsan.say()[br] [br] 當(dāng)然我們還可以在實(shí)例化對(duì)象后為對(duì)象添加新的屬性和方法.比如:[br] zhangsan.girlfriend="小麗";[br] zhangsan.doing=function(){[br] return "i am eating";[br] }[br][br]---->javascript類/對(duì)象和其他面向?qū)ο笳Z(yǔ)言的異同[br] 相同點(diǎn):面向?qū)ο缶幊痰乃枷攵际且粯拥?世界上所有的具體事物都可以看成對(duì)象,而這些事物從屬的集合都可以看成類.我們要做的是構(gòu)造我們需要的類,在實(shí)例化成我們需要的對(duì)象為我們工作.[br] 不同點(diǎn):其他面向?qū)ο缶幊痰恼Z(yǔ)言對(duì)于類/對(duì)象關(guān)心下面的事情:[br] 1.作用域:公用,私用,受保護(hù),靜態(tài).而javascript只有一種作用域:公用作用域.[br] 2.特性:繼承,多態(tài).javascript不支持多態(tài),繼承方面的內(nèi)容將在"javascript對(duì)象的繼承"一文中介紹[br][br][color=#0000ff][b]---->構(gòu)建javascript類/對(duì)象的方式[/b][/color][br] 首先,可以大致定義出下面幾種類型:[br] 1.工廠方式[br] 2.構(gòu)造函數(shù)方式[br] 3.原型方式[br] 4.混合的構(gòu)造函數(shù)/原型方式[br] 5.動(dòng)態(tài)原型方法[br] 6.混合工廠方式[br] [br] 具體說(shuō)明:[br] [b][color=#ff0000] a.工廠方式:[/color][/b][br] 所謂工廠方式,是指先建立對(duì)象,然后再往對(duì)象里面添加屬性和方法.[br] eg.1[br] var zhangsan=new object; //創(chuàng)建對(duì)象[br] zhangsan.name="張三"; //給對(duì)象添加屬性[br] zhangsan.say=function(){ //給對(duì)象增加方法[br] alert("我叫張三");[br] }[br] eg.2 上面的例子沒(méi)有封裝性,我們可以使用函數(shù)封裝,實(shí)現(xiàn)多重利用[br] function people(){[br] var p_object=new object;[br] p_object.name="張三";[br] p_object.say=function(){[br] alert("我叫張三");[br] }[br] return p_object; //返回對(duì)象[br] }[br] var zhangsan=people;[br] var lisi=people;[br] 上面zhangsan和lisi兩個(gè)對(duì)象具有完全相同的屬性和方法,都叫"張三"(name屬性),都會(huì)說(shuō)"我叫張三"(say()方法)[br] eg.3 通過(guò)傳遞參數(shù)改進(jìn)eg.2[br] function people(name){[br] var p_object=new object;[br] p_object.name=name;[br] p_object.say=function(){[br] alert("我叫"+this.name);[br] }[br] return p_object; //返回對(duì)象[br] }[br] var zhangsan=people("張三");[br] var lisi=people("李四");[br] 總結(jié):[br] 工廠方式,總是先創(chuàng)建一個(gè)對(duì)象,再往對(duì)象中添加你需要的屬性和方法.但這種做法對(duì)于封裝性和多種利用性不是很有利,這導(dǎo)致了這種對(duì)象的構(gòu)造方法不被提倡.[br] 使用工廠方式總是為每個(gè)對(duì)象創(chuàng)建獨(dú)立的函數(shù)版本.[br] 這類方式使用封裝然后調(diào)用新對(duì)象的時(shí)候不使用new創(chuàng)建對(duì)象.
[p]b.構(gòu)造函數(shù)方式:[br] 所謂構(gòu)造函數(shù)方式,就像我給出的例子"一個(gè)具體形象的例子",就是采用構(gòu)造函數(shù)的方式.它和工廠方式的區(qū)別是不再在函數(shù)內(nèi)部創(chuàng)建一個(gè)對(duì)象.而是通過(guò)this關(guān)鍵字指向當(dāng)前對(duì)象.[br] 構(gòu)造函數(shù)的例子不再給出.[br] 構(gòu)造函數(shù)和工廠方式一樣,會(huì)重復(fù)生成函數(shù),為每個(gè)版本的對(duì)象創(chuàng)建獨(dú)立的函數(shù)版本.[br] [br] c.原型方式[br] 所謂原型方式,就是利用prototype屬性來(lái)實(shí)現(xiàn)屬性和方法的繼承[br] eg.1[br] function people(){[br] }[br] [br] people.prototype.name="張三";[br] people.prototype.say=function(){[br] alert("我叫"+this.name);[br] };[br] [br] var zhangsan=new people();[br] var lisi=new people();[br] 原型方式不能通過(guò)構(gòu)造函數(shù)傳遞參數(shù)初始化屬性的值,因?yàn)樗械膶傩院头椒ǘ际峭ㄟ^(guò)prototype添加的[br] [br] d.混合的構(gòu)造函數(shù)/原型方式[br] 對(duì)于對(duì)象的屬性,使用構(gòu)造函數(shù)的方式[br] 對(duì)于對(duì)象的方法,使用原型方式[br] eg.1[br] function people(name){[br] this.name=name;[br] }[br] people.prototype.say=function(){[br] return "我的名字叫"+this.name;[br] };[br] [br] var zhangsan=new people("張三");[br] document.write(zhangsan.say());[br] [br] eg.2 我們也可以把prototype寫(xiě)入類,實(shí)現(xiàn)視覺(jué)上的封裝.[br] function people(name){[br] this.name=name;[br] people.prototype.say=function(){[br] return "我的名字叫"+this.name;[br] };[br] }[br] [br] var zhangsan=new people("張三");[br] document.write(zhangsan.say());[br] [br] 總結(jié):這種構(gòu)造類/對(duì)象的方法是推薦使用的[br] [br] e.動(dòng)態(tài)原型方式[br] 這是在混合的構(gòu)造函數(shù)/原型方式上改進(jìn)的一種方式(提供更友好的編碼風(fēng)格),他們功能是等價(jià)的[br] eg.1[br] function people(name){[br] this.name=name;[br] if(typeof people._initialized=="undefined"){[br] people.prototype.say=function(){[br] return "我的名字叫"+this.name;[br] };[br] people._initialized=true;[br] }[br] }[br] var zhangsan=new people("張三");[br] document.write(zhangsan.say());[br] var lisi=new people("李四");[br] document.write(lisi.say());[br] 這樣處理的目的是創(chuàng)建對(duì)象的方法后下一次使用時(shí)不要再創(chuàng)建.[br] 由于上面的原因,動(dòng)態(tài)原型方式也是javascript中常用的一種創(chuàng)建類/對(duì)象的一種方式[br] [br] f.混合工廠方式[br] 混合工廠方式幾乎和工廠方式是一樣的.它同樣是先構(gòu)造對(duì)象,然后再往對(duì)象中添加屬性和方法.不同的是,混合工廠方式生成對(duì)象時(shí)依舊使用new關(guān)鍵字.[br] eg.1[br] function people(){[br] var p_object=new object;[br] p_object.name="張三";[br] p_object.say=function(){[br] alert("我叫張三");[br] }[br] return p_object; //返回對(duì)象[br] }[br] var zhangsan=new people;[br] var lisi=new people;[br] zhangsan.say();[br] lisi.say();[br] 混合工廠方式和工廠方式以及經(jīng)典方式(構(gòu)造函數(shù),原型方式)一樣會(huì)產(chǎn)生問(wèn)題,不推薦使用[br] [br] 對(duì)各種構(gòu)建類/對(duì)象方式的總結(jié):[br] 通常地,我們使用混合的構(gòu)造函數(shù)/原型方式,即屬性使用構(gòu)造函數(shù)方式,方法采用原型方式.當(dāng)然,加強(qiáng)地,我們可以使用動(dòng)態(tài)原型方式.[br] 上面兩種方式是推薦使用的.[br] [br] [br]---->關(guān)于prototype的其他功能[br] 1.給對(duì)象(包括本地對(duì)象)添加新的方法[br] 比如array對(duì)象,你可能需要添加一個(gè)方法tohexstring,你可以這樣做:[br] array.prototype.tohexstring=function(){[br] //code here[br] }[br] 2.重定義方法[br] 實(shí)質(zhì)是讓方法指向一個(gè)新的函數(shù)[br] array.prototype.tohexstring=function(){[br] //other code href[br] }[/p]

該文章在 2010/7/14 1:40:00 編輯過(guò)

關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved