js对象中原型(prototype)的使用方法、替换以及注意事项

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function Person(name, age, gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
        }

        //----------------------原型的使用方法--------------------
        //1.利用对象的动态特性给原型对象添加成员
        //2.直接替换原型对象

        //存在的问题:
        //如果使用第二种方式使用原型,那么会出现如下问题:
        //在替换原型之前创建的对象的原型 和 在替换原型对象之后的创建的对象的原型 不是同一个!
        //如下:
        Person.prototype.sayHello = function () {
            console.log("Nice to meet you all");
        }
        var p = new Person("刘能", 18, "male");
            p.sayHello();//Nice to meet you all

        //替换了原型对象
        Person.prototype = {
            msg : "你猜我在不在"
        };

        var p1 = new Person("xzy",18,"male");
        console.log(p1.msg);
        p.sayHello();   //35行=不能打印出()只有22行打印出来‘Nice to meet you all’打印了两遍 说明不是同一个原型



        //----------------------替换原型对象---------------
        function Person(){

        }

        Person.prototype.sayHello = function () {
            console.log("-------nice to meet you------");
        }

        var p = new Person();

        Person.prototype.sayHello=function() {
           alert(1);
        };
        // var p = new Person;
        p.sayHello();



    </script>
</head>
<body>

</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值