JS 原型继承的几种方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>
<body>
    <script type="text/javascript">

    function Person() {
        this.name = '老王';
        this.age = 40;
        
    }
    Person.prototype.showName = function () {
        // alert(this.name);
        alert(this.age);
    };

    function Person1() {
        Person.call(this);
    }
    /*
    ** 方法一 类式继承
    **
    */
    // var F = function () {};
    // F.prototype = Person.prototype;
    // Person1.prototype = new F();
    // Person1.prototype.constructor = Person1;

    /*
    ** 方法二 类式继承2
    **
    */
    // Person1.prototype = Person.prototype;
    // Person1.prototype.constructor = Person1;

    /*
    ** 方法三 拷贝继承
    **
    */
    // extend( Person1.prototype, Person.prototype );
    // function extend( obj1, obj2 ) {
    //     for( var attr in obj2 ){
    //         obj1[attr] = obj2[attr];
    //     }
    // }
    /*
    ** 方法四 原型继承
    **
    */
    var a = {
        age : 1000
    };

    var b = Inherit(a);
    b.age = 24;
    alert(b.age);

    function Inherit(obj) {
        var F = function () {};
        F.prototype = obj;
        return new F();
    }


    // var p1 = new Person1();
    // p1.showName();
    </script>
</body>
</html>

  

转载于:https://www.cnblogs.com/zsongs/p/5592518.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值