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"];            
        }        
        Student.prototype={
            constructor:Student,
            sayName:function(){
                alert(this.name);
            }
        }

        var stu1=new Student("Lucy",10,"girl");
        var stu2=new Student("Bob",9,"boy");
        stu1.friends.push("Van");
        alert(stu1.friends);//"Kitty,Court,Van"
        alert(stu2.friends);//"Kitty,Court"
        alert(stu1.friends===stu2.friends);//false
        alert(stu1.sayName===stu2.sayName);//true
    </script>
</head>
<body>
</body>
</html>
<!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"];            
        }        
        Student.prototype={
            constructor:Student,
            sayName:function(){
                alert(this.name);
            }
        }

        var stu1=new Student("Lucy",10,"girl");
        var stu2=new Student("Bob",9,"boy");
        stu1.friends.push("Van");
        alert(stu1.friends);//"Kitty,Court,Van"
        alert(stu2.friends);//"Kitty,Court"
        alert(stu1.friends===stu2.friends);//false
        alert(stu1.sayName===stu2.sayName);//true
    </script>
</head>
<body>
</body>
</html>

//组合使用构造函数模型和原型模型——构造函数模型用于定义实例属性,原型模型用于定义方法和共享属性。 function Student(name,age,sex){
thisname;
thisage;
thissex;
this];
}
Student.prototype
{
constructor:Student,
sayName:
function(){
alert(
this.name);
}
}

varnew);
varnew);
stu1.friends.push(
);
alert(stu1.friends);
//“Kitty,Court,Van”//“Kitty,Court”//false//true

部分摘自《JavaScript高级程序设计(第3版)》

» 本文来自:前端开发者 » 《JS面向对象——组合使用构造函数模型与原型模型_情愿_前端开发者》
» 本文链接地址:https://www.rokub.com/73204.html
» 您也可以订阅本站:https://www.rokub.com
赞(0)
64K

评论 抢沙发

评论前必须登录!