首页 > Web开发 > 详细

JS面向对象——组合使用构造函数模型与原型模型中的隐患

时间:2019-09-17 00:43:52      阅读:132      评论:0      收藏:0      [点我收藏+]

组合使用构造函数模型和原型模型中的问题,使用对象字面量重写原型模型会有隐患(涉及到原型的动态性),如下例:

<!DOCTYPE html>
<html>
<head>
    <title>组合使用构造函数模型和原型模型——问题</title>
    <script type="text/javascript">
        //组合使用构造函数模型和原型模型——构造函数模型用于定义实例属性,原型模型用于定义方法和共享属性。    
        function Student(name,age,sex){            
            this.name=name;
            this.age=age;
            this.sex=sex;
            this.friends=["Kitty","Court"];            
        }

        //该方式出错
        // var stu1=new Student("Lucy",10,"girl");        
        // Student.prototype={
        //     constructor:Student,
        //     sayName:function(){
        //         alert(this.name);
        //     }
        // }        
        // stu1.sayName();    //使用对象字面量重写原型模型,出错

        var stu2=new Student("Bob",9,"boy");
        Student.prototype.sayName=function(){
                alert(this.name);
            };    
        stu2.sayName();
    </script>
</head>
<body>
</body>
</html>

在学习动态原型模型时,发现书中标注“使用动态原型模型时,不能使用对象字面量重写原型。”,于是想到组合方式中就是使用对象字面量重写原型模型的,于是就验证是否有问题,所以写个小心得,避免以后犯错。

JS面向对象——组合使用构造函数模型与原型模型中的隐患

原文:https://www.cnblogs.com/planetwithpig/p/11531004.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!