javascript中prototype方式面向对象编程注意事项
2015-02-03 16:46
246 查看
原文地址:http://www.hoverlees.com/blog/?p=1193
javascript的prototype在新对象创建时会复制这个类的prototype到新的实例,但要注意,它不会完全复制值是对象的属性,而是复制对象的指针。另一方面,这样可以达到面象对象中的静态变量效果。
如下面的示例代码所示:
这段代码咋一看,执行完成后所有对象inner.instanceNum都应该等于1,a的inner.invokeNum=1,b的是2,c的是3
而程序的真正输出是
Num:100 instanceNum:3 setNum:6
Num:200 instanceNum:3 setNum:6
Num:300 instanceNum:3 setNum:6
所以如果使用prototype方式的面向对象编程,在原型的定义里,属性的值不能是对象,否则它相当于标准面象对象里的静态变量了(但这正好是js的静态变量定义方式呢)
正确的方式应该是在构造函数里声明对象,如下
javascript的prototype在新对象创建时会复制这个类的prototype到新的实例,但要注意,它不会完全复制值是对象的属性,而是复制对象的指针。另一方面,这样可以达到面象对象中的静态变量效果。
如下面的示例代码所示:
而程序的真正输出是
Num:100 instanceNum:3 setNum:6
Num:200 instanceNum:3 setNum:6
Num:300 instanceNum:3 setNum:6
所以如果使用prototype方式的面向对象编程,在原型的定义里,属性的值不能是对象,否则它相当于标准面象对象里的静态变量了(但这正好是js的静态变量定义方式呢)
正确的方式应该是在构造函数里声明对象,如下
相关文章推荐
- 跟我学习javascript的prototype使用注意事项
- 【JavaScript】(3)基础语法---数组的定义、使用方式及其注意事项
- 你不知道的JavaScript--Item14 使用prototype的几点注意事项
- 跟我学习javascript的prototype使用注意事项
- JavaScript学习--Item14 使用prototype的几点注意事项
- 你不知道的JavaScript--Item14 使用prototype的几点注意事项
- wince下采用快捷方式启动自己的应用程序方法注意事项
- WindowsCE 中调整系统音量的几种方式和注意事项(转贴)
- (tips,javascript,office)客户端操作excel文档的注意事项
- JavaScript数组使用注意事项
- JavaScript脚本性能优化注意事项
- JavaScript脚本性能优化注意事项
- 优化JavaScript脚本的性能的几个注意事项
- javascript使用注意事项
- javascript removeChild 使用注意事项
- 开发跨浏览器javascript常见注意事项
- Javascript+xmlhttp调用Webservice以及注意事项
- 优化JavaScript脚本的性能的几个注意事项
- JavaScript开发时的五个注意事项
- PHP调用javascript的注意事项