最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

淺析JavaScript中的類型和對(duì)象_javascript技巧

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 21:16:33
文檔

淺析JavaScript中的類型和對(duì)象_javascript技巧

淺析JavaScript中的類型和對(duì)象_javascript技巧:JavaScript是基于對(duì)象的,任何元素都可以看成對(duì)象。然而,類型和對(duì)象是不同的。本文中,我們除了討論類型和對(duì)象的一些特點(diǎn)之外,更重要的是研究如何寫出好的并且利于重用的類型。畢竟,JavaScript這種流行的腳本語(yǔ)言如果能夠進(jìn)行良好的封裝,并形成一個(gè)龐大的
推薦度:
導(dǎo)讀淺析JavaScript中的類型和對(duì)象_javascript技巧:JavaScript是基于對(duì)象的,任何元素都可以看成對(duì)象。然而,類型和對(duì)象是不同的。本文中,我們除了討論類型和對(duì)象的一些特點(diǎn)之外,更重要的是研究如何寫出好的并且利于重用的類型。畢竟,JavaScript這種流行的腳本語(yǔ)言如果能夠進(jìn)行良好的封裝,并形成一個(gè)龐大的

JavaScript是基于對(duì)象的,任何元素都可以看成對(duì)象。然而,類型和對(duì)象是不同的。本文中,我們除了討論類型和對(duì)象的一些特點(diǎn)之外,更重要的是研究如何寫出好的并且利于重用的類型。畢竟,JavaScript這種流行的腳本語(yǔ)言如果能夠進(jìn)行良好的封裝,并形成一個(gè)龐大的類型庫(kù),對(duì)于重用是非常有意義的。

網(wǎng)上對(duì)于prototype的文章很多,一直沒(méi)明白核心的思想。最后寫了很多例子代碼后才明白:prototype只能用在類型上。

以下是一些關(guān)于類型和對(duì)象的例子,大家看完例子后可能更容易理解類型和對(duì)象之間的聯(lián)系:

例子代碼 說(shuō)明
1 Object.prototype.Property = 1;
Object.prototype.Method = function () { alert(1); } var obj = new Object(); alert(obj.Property); obj.Method();
可以在類型上使用proptotype來(lái)為類型添加行為。這些行為只能在類型的實(shí)例上體現(xiàn)。

JS中允許的類型有Array, Boolean, Date, Enumerator, Error, Function, Number, Object, RegExp, String

2 var obj = new Object();
obj.prototype.Property = 1; //Error //Error obj.prototype.Method = function() { alert(1); }
在實(shí)例上不能使用prototype,否則發(fā)生編譯錯(cuò)誤
3 Object.Property = 1; Object.Method = function() { alert(1); } alert(Object.Property); Object.Method(); 可以為類型定義“靜態(tài)”的屬性和方法,直接在類型上調(diào)用即可
4 Object.Property = 1; Object.Method = function() { alert(1); } var obj = new Object(); alert(obj.Property); //Error obj.Method(); //Error 實(shí)例不能調(diào)用類型的靜態(tài)屬性或方法,否則發(fā)生對(duì)象未定義的錯(cuò)誤。
5 function Aclass() { this.Property = 1; this.Method = function() { alert(1); } } var obj = new Aclass(); alert(obj.Property); obj.Method(); 這個(gè)例子演示了通常的在JavaScript中定義一個(gè)類型的方法
6 function Aclass() { this.Property = 1; this.Method = function() { alert(1); } } Aclass.prototype.Property2 = 2; Aclass.prototype.Method2 = function { alert(2); } var obj = new Aclass(); alert(obj.Property2); obj.Method2(); 可以在外部使用prototype為自定義的類型添加屬性和方法。
7 function Aclass() { this.Property = 1; this.Method = function() { alert(1); } } Aclass.prototype.Property = 2; Aclass.prototype.Method = function { alert(2); } var obj = new Aclass(); alert(obj.Property); obj.Method(); 在外部不能通過(guò)prototype改變自定義類型的屬性或方法。 該例子可以看到:調(diào)用的屬性和方法仍是最初定義的結(jié)果。
8 function Aclass() { this.Property = 1; this.Method = function() { alert(1); } } var obj = new Aclass(); obj.Property = 2; obj.Method = function() { alert(2); } alert(obj.Property); obj.Method(); 可以在對(duì)象上改變屬性。(這個(gè)是肯定的) 也可以在對(duì)象上改變方法。(和普遍的面向?qū)ο蟮母拍畈煌?/TD>
9 function Aclass() { this.Property = 1; this.Method = function() { alert(1); } } var obj = new Aclass(); obj.Property2 = 2; obj.Method2 = function() { alert(2); } alert(obj.Property2); obj.Method2(); 可以在對(duì)象上增加屬性或方法
10 function AClass() { this.Property = 1; this.Method = function() { alert(1); } } function AClass2() { this.Property2 = 2; this.Method2 = function() { alert(2); } } AClass2.prototype = new AClass(); var obj = new AClass2(); alert(obj.Property); obj.Method(); alert(obj.Property2); obj.Method2(); 這個(gè)例子說(shuō)明了一個(gè)類型如何從另一個(gè)類型繼承。
11 function AClass() { this.Property = 1; this.Method = function() { alert(1); } } function AClass2() { this.Property2 = 2; this.Method2 = function() { alert(2); } } AClass2.prototype = new AClass(); AClass2.prototype.Property = 3; AClass2.prototype.Method = function() { alert(4); } var obj = new AClass2(); alert(obj.Property); obj.Method(); 這個(gè)例子說(shuō)明了子類如何重寫父類的屬性或方法。

以上例子中,關(guān)于通過(guò)類型實(shí)現(xiàn)重用方面,重要的有:
·例子1:JavaScript中允許添加行為的類型
·例子2:prototype使用的限制
·例子3:如何定義類型上的靜態(tài)成員
·例子7:prototype在重定義類型的成員上的限制
·例子10:如何讓一個(gè)類型繼承于另一個(gè)類型
·例子11:如何在子類中重新定義父類的成員

JavaScript能夠?qū)崿F(xiàn)的面向?qū)ο蟮奶卣饔校?BR>·公有屬性(public field)
·公有方法(public Method)
·私有屬性(private field)
·私有方法(private field)
·方法重載(method overload)
·構(gòu)造函數(shù)(constructor)
·事件(event)
·單一繼承(single inherit)
·子類重寫父類的屬性或方法(override)
·靜態(tài)屬性或方法(static member)

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

淺析JavaScript中的類型和對(duì)象_javascript技巧

淺析JavaScript中的類型和對(duì)象_javascript技巧:JavaScript是基于對(duì)象的,任何元素都可以看成對(duì)象。然而,類型和對(duì)象是不同的。本文中,我們除了討論類型和對(duì)象的一些特點(diǎn)之外,更重要的是研究如何寫出好的并且利于重用的類型。畢竟,JavaScript這種流行的腳本語(yǔ)言如果能夠進(jìn)行良好的封裝,并形成一個(gè)龐大的
推薦度:
標(biāo)簽: 類型 的類型 對(duì)象
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top