JS中定义对象方式四: 使用原型(prototype)方式创建对象之二(弊端及其改进)
2013-03-13 11:59
771 查看
<html> <head> <script type="text/javascript"> /*弊端:如果使用原型方式创建对象,那么生成的所有对象会共享原型中的属性, 这样一个对象改变了该属性也会反应到其他对象当中。代码如下:*/ function Person() {} Person.prototype.username = new Array(); Person.prototype.password = "0123"; Person.prototype.getInfo = function() { alert(this.username + ":" + this.password); } var person = new Person(); var person2 = new Person(); person.username.push("zhangsan"); person.username.push("lisi"); person.password = "0000"; person.getInfo(); person2.getInfo(); </script> </head> <body> </body> </html>
<html> <head> <script type="text/javascript"> /*改进: 使用原型+构造函数方式来定义对象,对象之间的属性互不干扰 各个对象之间共享同一个方法。 */ function Person() { this.username = new Array(); this.password = "0123"; } Person.prototype.getInfo = function() { alert(this.username + ":" + this.password); } var person = new Person(); var person2 = new Person(); person.username.push("zhangsan"); person.password = "0000"; person2.username.push("lisi"); person.getInfo(); person2.getInfo(); </script> </head> <body> </body> </html>
相关文章推荐
- JS中定义对象方式二: 使用工厂方式创建对象(传递参数,及其改进方法)
- JS中定义对象方式四: 使用原型(prototype)方式创建对象之一
- JS中定义对象方式五: 使用动态原型方式创建对象
- JS中定义对象方式三: 使用构造函数方式创建对象
- JS中定义对象方式二: 使用工厂方式创建对象(无参数传递)
- js中对象创建方式及其优势和不足1
- js对象创建的方式及其优势和不足5
- JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链
- js对象创建的方式及其优势和不足6
- [js高手之路]使用原型对象(prototype)需要注意的地方
- js中使用new Date(str)创建时间对象不兼容firefox和ie的解决方式
- JS创建对象之组合使用构造函数模式和原型模式
- [Javascript]:JS创建对象方式、对象使用说明与常用内置对象总结
- js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
- js中组合使用构造函数模式和原型模式创建对象
- [js高手之路]使用原型对象(prototype)需要注意的地方
- [js高手之路]使用原型对象(prototype)需要注意的地方
- js对象创建的方式及其优势和不足2
- JS 之函数定义 & 创建对象 三种方式
- javascript使用原型(prototype)方法创建对象