JavaScript使用原型方式创建对象所带来的问题
2015-05-06 18:51
579 查看
<script> /** * 基于原型的创建虽然可以有效的完成封装,但是依然有一些问题 * 1、无法通过构造函数来设置属性值 * 2、当属性中有引用类型变量时,可能存在变量值重复 */ function Person() {}; Person.prototype = { constructor:Person, name:"Jack", age:30, friends:["Ada", "Linda"], say:function(){ alert(this.name + "[" + this.friends + "]"); } } var p1 = new Person(); p1.name = "john"; p1.say(); // 会在原型中招friends,所以Mike是在原型中增加的 p1.friends.push("Mike"); // 为p1增加了一个朋友 // 此时原型中就多了一个Mike,这就是原型带来的问题 var p2 = new Person(); p2.say(); </script>
相关文章推荐
- JavaScript之面向对象学习六原型模式创建对象的问题,组合使用构造函数模式和原型模式创建对象
- JavaScript高级程序设计之面向对象的程序设计之创建对象之组合使用构造函数模式和原型模式 第6.2.4讲笔记
- javascript对象的创建方式,原型,方法
- javascript中组合使用构造函数模式和原型模式创建对象
- 【转】javascript中值传递,地址传递,引用传递的问题(使用js创建list对象时会用到)
- 从0开始学react netive:2.Javascript创建对象的方式_prototype原型的概念_原型继承
- JS中定义对象方式四: 使用原型(prototype)方式创建对象之一
- JS中定义对象方式四: 使用原型(prototype)方式创建对象之二(弊端及其改进)
- JS中定义对象方式五: 使用动态原型方式创建对象
- JavaScript对象的创建之基于原型方式
- JavaScript对象的创建之基于构造方法+原型方式
- JavaScript对象的创建之动态原型方式
- javascript使用原型(prototype)方法创建对象
- javascript创建对象之函数构造模式和原型模式结合使用(四)
- JavaScript使用原型创建对象
- javascript中值传递,地址传递,引用传递的问题(使用js创建list对象时会用到)
- javascript--面向对象(三)原型对象存在的问题及组合组合使用原型和构造函数
- [Javascript]:JS创建对象方式、对象使用说明与常用内置对象总结
- JavaScript关于使用空函数来作为原型对象xx.prototype之间的桥梁的一些小问题
- JavaScript 创建对象--组合使用构造函数模式和原型模式