loading...
loading...
<script> // function Student() {} // Student.prototype={ // name:"李四", // age:23, // family:["爸爸","妈妈","姐姐"], // fun: function () { // return this.age+","+this.family; // } // }; // var stu1=new Student(); // stu1.name="张三"; // stu1.family.push("大舅"); // console.log(stu1.name); // console.log(stu1.family);//["爸爸", "妈妈", "姐姐", "大舅"] // var stu2=new Student(); // console.log(stu2.name);//["爸爸", "妈妈", "姐姐", "大舅"] // console.log(stu2.family); //构造函数+原型 模式 function Student(name,age) {//每个对象特有的使用构造函数 this.name=name; this.age=age; this.family=["爸爸", "妈妈"] } Student.prototype={//所有对象共享的放在原型对象中 fun: function(){ return this.name+ this.age+this.family; } }; // // var stu1=new Student("lisi","20"); // stu1.family.push("姐姐"); // console.log(stu1.family); // var stu2=new Student("zhangsan","20"); // console.log(stu2.family);//["爸爸", "妈妈"] //动态原型模式 把构造函数和原型写在一起 function Student(name,age) {//每个对象特有的使用构造函数 this.name=name; this.age=age; this.family=["爸爸", "妈妈"]; if(typeof this.fun!="function"){ console.log("原型初始化开始"); Student.prototype.fun= function(){ return this.name+ this.age+this.family; }; console.log("原型初始化结束"); } } var stu1=new Student("lisi","20"); console.log(stu1.fun());//lisi20爸爸,妈妈 var stu2=new Student("lisi","34"); console.log(stu2.fun());//lisi20爸爸,妈妈 //原型初始化开始 //原型初始化结束 //lisi20爸爸,妈妈 //原型初始化开始 //原型初始化结束 //lisi34爸爸,妈妈 //想让只初始化一次使用if判断 </script>
发表评论: