JavaScript原型(prototype)及原型链(prototype chaining)的问题
2010-09-06 11:45
471 查看
![](http://img2.douban.com/spic/s4169233.jpg)
阅读《JavaScript高级程序设计(第2版)》第6章的学习笔记。原型在引用类型中会有问题:
function SuperType(){ } SuperType.prototype.color = ['red','blue','green']; var instance1 = new SuperType(); instance1.color.push('black'); var instance2 = new SuperType(); console.log(instance2.color);
引用类型的原型(prototype)属性中会被所有实例共享的问题。下面继承中的原型链(prototype chaining)也是同样的问题:
function SuperType(){ this.color = ['red','blue','green']; } function SubType(){ } SubType.prototype = new SuperType(); var instance1 = new SubType(); instance1.color.push('black'); var instance2 = new SubType(); console.log(instance2.color);
子类(SubType)的实例的属性实际上是指向了在 prototype 中的属性。这是因为超类(SuperType)的实例赋给了子类的原型,这样超类的属性变成了子类的原型中的属性。
相关文章推荐
- JavaScript关于使用空函数来作为原型对象xx.prototype之间的桥梁的一些小问题
- 理解JavaScript中的原型prototype
- 转:javascript prototype原型链的原理
- javascript原型继承分析(prototype)(补充版)
- 详解JavaScript中基于原型prototype的继承特性
- 面向对象的Javascript - 通过原型(Prototype)实现继承
- 屌丝对javascript中的prototype(原型)的理解
- JavaScript _proto_、prototype原型、原型链、constructor构造器、类式继承、原型继承
- 深入理解javascript原型和闭包(3)——prototype原型
- JavaScript原型prototype
- javaScript中的prototype来龙去脉,原型、构造函数、实例对象
- javascript原型prototype(2)
- 悟透JavaScript原型prototype
- JavaScript 中 Number.prototype.toFixed 方法五舍六入的问题
- javascript原型prototype代码片段笔记
- 学习 JavaScript 最难点之一 -- 理解prototype(原型)
- javascript学习随笔(二)原型prototype
- mingw ffmpeg 编译getc原型( prototype) 问题
- Axure RP Pro - 相关问题 - 修改生成的prototype原型的css样式表
- JavaScript 的原型对象 Prototype