javascript--面向对象(三)原型对象存在的问题及组合组合使用原型和构造函数
2017-06-19 21:29
603 查看
1、原型对象存在的问题
原型的概念:原型对象里所有的属性和方法被所有的构造函数实例化的对象共享原型里的属性和方法被实例共享,static 修改属性和方法,所有对象都被修改
function Person(){ } Person.prototype = { constructor:Person, name:"z3", age:20, friends:['里4','王5'], sayName : function(){ console.info("mingzi"); } } var p1 = new Person(); var p2 = new Person(); //p1加入一friends p1.friends.push('赵6'); console.info(p1.friends);//["里4", "王5", "赵6"] console.info(p2.friends);//["里4", "王5", "赵6"]
2、解决方法:组合使用原型和构造函数式 :开发时常用的方式 用的最多的
function Student(name,age,friends,job){ this.name = name; this.age = age; this.friends = friends; this.job = job; } Student.prototype = { constructor :Person, sayName : function(){ console.info(this.name); } } var s1 = new Student('linag',20,['ni','li','k2'],'开发'); var s2 = new Student('chang',40,['m2','j1'],'老本'); console.info(s1.friends);// ["ni", "li", "k2"] console.info(s2.friends);//["m2", "j1"]
注意要重新将原型对象的constructor定义为构造函数
Student.prototype = { constructor :Person,//注意要重新将原型对象的constructor定义为构造函数 sayName : function(){ console.info(this.name);
相关文章推荐
- JavaScript之面向对象学习六原型模式创建对象的问题,组合使用构造函数模式和原型模式创建对象
- JavaScript高级程序设计之面向对象的程序设计之创建对象之组合使用构造函数模式和原型模式 第6.2.4讲笔记
- javascript面向对象-组合使用构造函数和原型模式时在原型对象添加init函数
- javascript创建对象——组合使用构造函数和原型模式
- JavaScript 创建对象--组合使用构造函数模式和原型模式
- JavaScript面向对象 组合使用构造函数模式和原型模式
- javascript中组合使用构造函数模式和原型模式创建对象
- JavaScript面向对象 组合使用构造函数模式和原型模式
- js中组合使用构造函数模式和原型模式创建对象
- JavaScript——组合使用构造函数模式和原型模式
- javascript 静态对象和构造函数的使用和公私问题
- javascript--面向对象(四)原型对象,构造函数及实例对象的关系图
- JS创建对象之组合使用构造函数模式和原型模式
- javascript组合使用构造函数模式和原型模式实例
- javascript 静态对象和构造函数的使用和公私问题
- 解决原型重新的问题——通过组合构造函数和原型来创建对象
- js中组合使用构造函数模式和原型模式创建对象
- 在JS中组合使用构造函数模式和原型模式创建对象
- JavaScript使用原型方式创建对象所带来的问题
- Javascript---字面量创建对象、组合构造函数+原型模式、动态原型模式