原型继承的实现和 原型的替换

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        //原型继承
        //利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承
        //这种实现继承的方式,就叫做原型继承

        //1.给原型对象中添加成员(通过对象的动态特性) 不是严格意义上的继承
        function Person(name, age){
            this.name = name;
            this.age = age;
        }

        Person.prototype.sayHello = function () {
            console.log("我想死你们了");
        }

        var p = new Person("冯巩",50);
        p.sayHello();
        //这里的p对象就继承了原型 (原型继承)

        //2.直接替换原型对象
        function Person(name, age){
            this.name = name;
            this.age = age;
        }

        Person.prototype.sayHi = function () {
            console.log("Hey man");
        }

        var parent = {
            sayHello : function () {
                console.log("我想你了");
            }
        }
//
        Person.prototype = parent;

        var p = new Person("冯巩",50);
        p.sayHello();
//        p.sayHi();  替换之后,sayHi方法不复存在

        //p对象继承了原型对象(parent对象)
        //注意:使用替换原型的方式实现继承的时候,原有原型中的成员就会丢失

        //3.利用混入的方式给原型对象添加成员
//        function Person(name, age){
//            this.name = name;
//            this.age = age;
//        }
//
//        Person.prototype.sayHi = function () {
//            console.log("Hey man");
//        }
//
//        var parent = {
//            sayHello : function () {
//                console.log("我想你死了");
//            }
//        }
//
//        for(var k in parent){
//            Person.prototype[k] = parent[k];
//        }
//
//        var p = new Person("冯巩",50);
//        p.sayHello();

        //也是实现了继承 p继承自原型对象

    </script>
</head>
<body>

</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值