zoukankan      html  css  js  c++  java
  • JS面向对象——组合使用构造函数模型与原型模型中的隐患

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

    <!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>

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

  • 相关阅读:
    9-2 链表
    transient
    获取当前电脑的ip地址
    LinkList
    Java代码模拟链表
    什么是复合主键
    wp8 入门到精通
    C# 从入门到精通
    wp8 json2csharp
    wp8 安装.Net3.5
  • 原文地址:https://www.cnblogs.com/planetwithpig/p/11531004.html
Copyright © 2011-2022 走看看