亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

淺析JavaScript中的類型和對象

2019-11-20 21:33:45
字體:
來源:轉載
供稿:網友

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

網上對于prototype的文章很多,一直沒明白核心的思想。最后寫了很多例子代碼后才明白:prototype只能用在類型上。

以下是一些關于類型和對象的例子,大家看完例子后可能更容易理解類型和對象之間的聯系:

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

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);
}
在實例上不能使用prototype,否則發生編譯錯誤
3
Object.Property = 1;
Object.Method = function()
{
    alert(1);
}
 
alert(Object.Property);
Object.Method();
可以為類型定義“靜態”的屬性和方法,直接在類型上調用即可
4
Object.Property = 1;
Object.Method = function()
{
    alert(1);
}
var obj = new Object();
alert(obj.Property); //Error
obj.Method(); //Error
實例不能調用類型的靜態屬性或方法,否則發生對象未定義的錯誤。
5
function Aclass()
{
this.Property = 1;
this.Method = function()
{
    alert(1);
}
}
var obj = new Aclass();
alert(obj.Property);
obj.Method();
這個例子演示了通常的在JavaScript中定義一個類型的方法
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();
在外部不能通過prototype改變自定義類型的屬性或方法。
該例子可以看到:調用的屬性和方法仍是最初定義的結果。
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();
可以在對象上改變屬性。(這個是肯定的)
也可以在對象上改變方法。(和普遍的面向對象的概念不同)
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();
可以在對象上增加屬性或方法
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();
這個例子說明了一個類型如何從另一個類型繼承。
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();
這個例子說明了子類如何重寫父類的屬性或方法。

以上例子中,關于通過類型實現重用方面,重要的有:
?例子1:JavaScript中允許添加行為的類型
?例子2:prototype使用的限制
?例子3:如何定義類型上的靜態成員
?例子7:prototype在重定義類型的成員上的限制
?例子10:如何讓一個類型繼承于另一個類型
?例子11:如何在子類中重新定義父類的成員

JavaScript能夠實現的面向對象的特征有:
?公有屬性(public field)
?公有方法(public Method)
?私有屬性(private field)
?私有方法(private field)
?方法重載(method overload)
?構造函數(constructor)
?事件(event)
?單一繼承(single inherit)
?子類重寫父類的屬性或方法(override)
?靜態屬性或方法(static member)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久热精品视频在线观看一区| 国产日韩精品在线观看| 亚洲第一精品自拍| 国产色综合天天综合网| 国产欧美婷婷中文| 欧美成人激情图片网| 亚洲欧美另类中文字幕| 国产亚洲一级高清| 这里只有精品在线播放| 这里只有精品久久| 国产精品免费看久久久香蕉| 国产亚洲成av人片在线观看桃| 亚洲性av网站| 91免费人成网站在线观看18| 成人黄色午夜影院| 欧美成人精品三级在线观看| 午夜精品福利电影| 精品国内产的精品视频在线观看| 日韩精品丝袜在线| 国产亚洲欧洲高清| 色综合久久悠悠| 欧美成人第一页| 中文字幕亚洲一区二区三区| 亚洲精品国产拍免费91在线| 久久全球大尺度高清视频| 亚洲视频一区二区| 亚洲天堂男人天堂| 92福利视频午夜1000合集在线观看| 亚洲激情电影中文字幕| 在线精品国产欧美| 日韩美女在线看| 国产精品久久久久久久天堂| 成人欧美一区二区三区黑人| 久久九九国产精品怡红院| 91国产高清在线| 国产美女91呻吟求| 热门国产精品亚洲第一区在线| 成人黄色午夜影院| 久久999免费视频| 亚洲第一区在线观看| 精品美女久久久久久免费| 久久精品久久久久久国产 免费| 国产欧美精品在线| 亚洲乱码一区二区| 亚洲aaaaaa| 国产精品美乳一区二区免费| 国产综合视频在线观看| www.欧美精品一二三区| 91精品国产91久久久久久| 欧美色另类天堂2015| 日韩欧美国产一区二区| 欧美亚洲另类激情另类| 国产不卡视频在线| 欧美三级免费观看| 成人亚洲综合色就1024| 久久影视三级福利片| 久久最新资源网| 国产精品免费看久久久香蕉| 欧美成人午夜免费视在线看片| 亚洲欧美激情四射在线日| 97精品国产aⅴ7777| 日本a级片电影一区二区| 亚洲美女福利视频网站| 狠狠色狠狠色综合日日小说| 久久久久久久久网站| 国产欧美va欧美va香蕉在| 亚洲黄色免费三级| 国产精品高潮呻吟久久av黑人| 亚州国产精品久久久| 欧美视频一二三| 少妇av一区二区三区| 欧美成人精品一区二区| 91精品国产91久久久久久吃药| 孩xxxx性bbbb欧美| 久久青草精品视频免费观看| 亚洲一区二区三区在线视频| 91精品国产成人| 亚洲欧美在线磁力| 亚洲人成毛片在线播放| 久久久久久久久久久国产| 国产精品jvid在线观看蜜臀| 久久精品99久久香蕉国产色戒| 亚洲国模精品私拍| 国产91在线播放精品91| 日韩欧美在线视频日韩欧美在线视频| 午夜精品久久久久久久白皮肤| 亚洲男人的天堂在线| 日本不卡高字幕在线2019| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产xxx69麻豆国语对白| 国产精品视频白浆免费视频| 欧美理论片在线观看| 亚洲欧美日韩精品久久奇米色影视| 欧美精品videosex极品1| 成人自拍性视频| 91高清视频在线免费观看| 国产v综合ⅴ日韩v欧美大片| 国产精品久久久久久久久久久新郎| 91产国在线观看动作片喷水| 91精品国产自产在线| 中文字幕9999| 国产区亚洲区欧美区| 亚洲桃花岛网站| 亚洲999一在线观看www| 日韩精品视频观看| 久久视频在线免费观看| 国产成人一区二区三区小说| 欧美成年人视频网站| 国产精品久久久久久久久借妻| 精品亚洲国产成av人片传媒| 日韩少妇与小伙激情| 欧美第一黄色网| 久久中文字幕在线视频| 26uuu久久噜噜噜噜| 欧美激情亚洲一区| 亚洲男人天堂2023| 91日韩在线视频| 91精品啪在线观看麻豆免费| 亚洲精品免费一区二区三区| 国色天香2019中文字幕在线观看| 日韩电影在线观看免费| 这里只有视频精品| 国产欧美va欧美va香蕉在线| 欧美人与性动交| 亚洲国产天堂久久国产91| 久久久久久亚洲| 亚洲国产精品99久久| 国产精品88a∨| 日本视频久久久| 美日韩在线视频| 国产精品美女久久久久av超清| 一区二区欧美日韩视频| 亚洲级视频在线观看免费1级| 久久久影视精品| 91视频国产高清| 成人动漫网站在线观看| 欧美另类69精品久久久久9999| 久久久久久久久爱| 日本高清+成人网在线观看| 成人疯狂猛交xxx| 亚洲a∨日韩av高清在线观看| 亚洲欧美精品在线| 疯狂做受xxxx高潮欧美日本| 国产精品视频资源| 韩国视频理论视频久久| 亚洲乱码国产乱码精品精天堂| 国内精品一区二区三区四区| 国产精品高潮呻吟久久av野狼| 国产成人一区二区三区电影| 日韩欧美aⅴ综合网站发布| 国产精品一区二区三区久久久| 国产极品精品在线观看| 亚洲自拍偷拍网址| 日本精品中文字幕| 久久这里只有精品视频首页| 亚洲欧洲日产国码av系列天堂| 成人亚洲欧美一区二区三区| 免费不卡欧美自拍视频| 日韩av网站在线| 国产精品爱久久久久久久| 日本中文字幕不卡免费| 91高潮精品免费porn| 国产精品黄色av| 久久精品国产免费观看|