中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

JavaScript的繼承
來源:易賢網 閱讀:873 次 日期:2015-04-22 10:27:05
溫馨提示:易賢網小編為您整理了“JavaScript的繼承”,方便廣大網友查閱!

prototype 屬性的作用:

利用prototype 屬性提供對象的類的一組基本功能。對象的新實例“繼承”賦予該對象原型的操作。

prototype 屬性的功能:

所有JavaScript 內部對象都有只讀的prototype 屬性。可以為內部對象的原型添加功能,但該對象不能被賦予不同的原型。

然而,用戶定義的對象可以被賦給新的原型。

constructor 屬性的作用:

constructor 表示創建對象的函數。

constructor 屬性的功能:

constructor 屬性是所有具有 prototype 的對象的成員。它們包括除 Global 和 Math 對象以外的所有 JavaScript 內部對象。

constructor 屬性保存了對構造特定對象實例的函數的引用。

A 利用prototype 添加對象的屬性 [ 方式一]

示例:

<script type="text/javascript">

//方式一

var myObj = function(){

this.study = "JavaScript";

}

myObj.prototype.hobby = function()

{

this.hobby = "See girl";

}

var newObj = new myObj();

for ( var attr in newObj )

{

document.write( attr +"<br/>" );

}

</script>

B 利用prototype 添加對象的屬性 [ 方式二]

示例:

<script type="text/javascript">

//方式二

var superObj = { name:"xugang" };

var subObj = { age:20 };

function extend(superObj,subObj){

//獲得父對象的原型對象

subObj.getSuper = superObj.prototype;

//將父對象的屬性給子對象

for(var i in superObj){

subObj[i] = superObj[i];

}

}

extend(superObj,subObj);

for ( var s in subObj )

{

document.write( s +"<br/>" ); //遍歷子對象的屬性

}

</script>

C 利用prototype 繼承父類的原型屬性

示例:

<script>

function Person(_name){

this.name = _name;

}

//創建對象(用于更改 prototype 原型對象)

function addSex(_sex){

this.sex = _sex;

}

//更改原型對象

Person.prototype = new addSex('男');

var p = new Person('xugang');

alert("p 的原型為:" + p.constructor);

//打印所有屬性

for(var i in p){

//alert(p[i]);

}

// ================= 繼承 =================

//創建子對象 Student

function Student(_study){

this.study = _study;

}

// 通過 prototype 讓 Student 繼承 Person

Student.prototype = new Person('劉德華');

var stu1 = new Student('JS');

alert("stu1 的原型為:" + stu1.constructor);

for(var i in stu1){

alert(stu1[i]);

}

</script>

因為Student 對象的原型更改為Person 對象,而Person 對象的原型更改為addSex ,所以,Student 對象的原型為addSex 。

注意:一個對象的原型是在 new 對象的那一刻確定的,如果在 new 對象以后更改無效!

D 如何設置對象的原型對象和構造函數

示例:

<script type="text/javascript">

function B(){

this.name = "劉德華";

return "B方法";

}

function C(){

this.age = 42;

return "C方法";

}

B.prototype = new C();

var b = new B();

b.constructor = B; //重寫b的構造方法為B本身

document.write("b 的構造方法:");

document.write(b.constructor() + "<br/>");

document.write("b 的原型對象的構造方法:");

document.write(b.constructor.prototype.constructor() + "<br/>");

for ( var m in b )

{

document.write("屬性:" + m );

document.write(" 值:" + b[m] +"<br/>");

}

</script>

結果如下:

b 的構造方法:B方法

b 的原型對象的構造方法:C方法

屬性:age 值:42

屬性:name 值:劉德華

E 對象中用來保存原型的 __proto__ 變量

示例:

<script type="text/javascript">

function myObject(){}

var my = new myObject();

//任何對象都會有一個隱藏的 __proto__ 變量用來保存原型

document.write(my.__proto__ + "<br/>");

//在 Internet Explorer 下顯示為:undefined

更多信息請查看IT技術專欄

更多信息請查看腳本欄目
易賢網手機網站地址:JavaScript的繼承
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
主站蜘蛛池模板: 松江区| 全椒县| 固原市| 金乡县| 哈尔滨市| 青川县| 定远县| 泰顺县| 东明县| 呼图壁县| 阜康市| 手游| 莫力| 兴国县| 九龙县| 通城县| 晋城| 北安市| 高要市| 天水市| 鄂托克前旗| 镇沅| 桦川县| 丽江市| 井陉县| 金秀| 常德市| 木里| 定安县| 庐江县| 商洛市| 徐闻县| 沭阳县| 工布江达县| 民权县| 大厂| 蓬安县| 永靖县| 当雄县| 阿尔山市| 富平县|