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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gyq04551/article/details/73558063
<!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>

展开阅读全文

没有更多推荐了,返回首页