麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > JS > 正文

JavaScript 原型與繼承說明

2024-09-06 12:45:50
字體:
來源:轉載
供稿:網友
function A(x) { this.x = x; } alert(A.prototype); alert(A.prototype.constructor);

根據彈出的結果,我們可以得到:原型對象是由函數的構造函數創建,它所擁有的屬性能被所有對象共享,初始時原型對象指向一個Object對象,并且定義了一個constructor屬性,該屬性指向定義該原型對象的構造函數本身,再看如下代碼。

Code

function A(x) { A.prototype.x = x; } var obj = new A(10); alert(obj.x); alert(obj.constructor); 

因為原型對象的所有屬性能被構造函數創建對象共享,所以創建的對象可以訪問這里的constructor屬性,同時obj對應的就是原型對象(prototype)所創建出來的一個實例,那么重寫constructor屬性會出現什么樣的結果呢?

Code

function A(x) { A.prototype.x = x; } var objA = new A(10); objA.constructor = function(x){ alert("重寫obj的constructor屬性");this.x = 20 }; objA.constructor(); alert(objA.x); var objB = new A(10); alert(objB.x);

根據結果我們可以看到,首先彈出的是“重寫obj的constructor屬性”,然后彈出20,在彈出10,可見,我們在書寫重寫objA這個對象的constructor之后,objB并沒有被改變,因此無論在一個對象加入或修改多少屬性這都不影響其原型對象中屬性的本來面目,其實很容易理解js為什么這樣做,因為一個對象的行為不能影響到其他對象,否則將會造成混亂。

在這里,我們可以總結一下,上面代碼的規則:

1.當我們調用某個對象的時候,首先檢查該對象本身的自己定義的屬性,如果存在則調用。

2.當自己本身的屬性不存在的時候,則調用其構造函數所定義的原型對象的引用。

那么根據這個規則,就形成了JavaScript中的一個原型鏈,我們就可以根據這個規則來定義繼承關系。

function A(x) { A.prototype.x = x; } function B(x,y) { B.prototype.y = y; A.call(this,x); }

這段代碼顯示了兩個函數,B函數繼承與A函數,A.call(this.x)表示,將B的對象this傳遞到A函數中進行執行。然后,我們同樣需要由B函數構造出來的對象需要包含A函數的所有特性,因此需要加上這么一句話。
代碼如下:
B.prototype = new A();
alert(B.prototype.constructor);

先我們指定B的原型為A,因此,B函數繼承了A函數的特性,根據彈出的結果,我們可以看到,其constructor指向的是A函數,那么我們的B函數的特性是不是丟失了呢?因此,我們需要在加上一句話,最后給出繼續的整合代碼。

function A(x) { A.prototype.x = x; A.prototype.ShowA = function(){ alert("A的Show方法!"); }; } function B(x,y) { B.prototype.y = y; A.call(this,x); B.prototype.ShowB = function(){ alert("B的Show方法!"); }; } B.prototype = new A(); B.prototype.constructor = B; var obj = new B(10,5); alert(obj.x); alert(obj.y); obj.ShowA(); obj.ShowB();            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久在线 | 欧美日韩大片在线观看 | 欧美日韩亚洲成人 | 国产免费乱淫av | 91成人久久 | 国产精品久久久久久久久久久久久久久 | 国产亚洲精品美女久久久 | 亚洲自拍第一 | 欧美一级一区二区三区 | 久久国产精品影视 | 电影一级毛片 | 免费一级在线观看 | 午夜男人在线观看 | 毛片成人网 | 男男羞羞视频网站国产 | 日韩视频在线不卡 | 99精品视频网站 | 91精品国产九九九久久久亚洲 | 日本aaaa片毛片免费观蜜桃 | 国产精品一区二区x88av | 亚洲日本韩国在线观看 | 国产精品久久久久久久久久尿 | 精品一区二区三区四区在线 | 成人免费乱码大片a毛片视频网站 | 国产精品一区二区在线 | 国产精品久久久久久模特 | 成人毛片免费视频 | 久久久国产精品网站 | 久久靖品| 欧美日韩色 | 一级在线观看视频 | 日韩av电影免费在线观看 | 亚洲国产精品一区二区精品 | 中文字幕线观看 | 久久精品观看 | 中国av中文字幕 | 中国老女人一级毛片视频 | 俄罗斯16一20sex牲色另类 | 中文字幕线观看 | 久久精品亚洲成在人线av网址 | 香蕉视频99 |