你的位置:首页 > 软件开发 > Java > [Effective JavaScript 笔记]第36条:只将实例状态存储在实例对象中

[Effective JavaScript 笔记]第36条:只将实例状态存储在实例对象中

发布时间:2016-06-16 10:00:04
理解原型对象与其实例之间是一对多的关系,对于实现正确的对象行为很重要。常见的错误是不小心将每个实例的数据存储到了其原型中。示例一个实现了树型数据结构的类可能将子节点存储在数组中。实例状态在原型中(错误)将存储子节点的数组放置在原型对象中将会导致实现被完全破坏。function T ...

[Effective JavaScript 笔记]第36条:只将实例状态存储在实例对象中

理解原型对象与其实例之间是一对多的关系,对于实现正确的对象行为很重要。这里面原有的实例都要可以访问和操作原型中children,然后都是对这个数组进行了添加,导致对应实例的children数据出现错误。

实例状态在实例对象中(正确)

实现Tree类的正确方式是为每个实例创建一个单独的children数组。

function Tree(x){ this.value=x; this.children=[];}Tree.prototype={ addChild:function(){  this.children.push(x); }}

同样的我们看一张上面代码的图示

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:[Effective JavaScript 笔记]第36条:只将实例状态存储在实例对象中

关键词:JavaScript

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。