午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

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

    prototype 屬性的作用:

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

    prototype 屬性的功能:

    所有JavaScript 內部對象都有只讀的prototype 屬性??梢詾閮炔繉ο蟮脑吞砑庸δ埽搶ο蟛荒鼙毁x予不同的原型。

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

    constructor 屬性的作用:

    constructor 表示創(chuàng)建對象的函數(shù)。

    constructor 屬性的功能:

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

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

    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;

    }

    //創(chuàng)建對象(用于更改 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]);

    }

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

    //創(chuàng)建子對象 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 如何設置對象的原型對象和構造函數(shù)

    示例:

    <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的繼承

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

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關于我們 | 聯(lián)系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網