对象关联代码风格
Task = {setID: function(ID){this.id = ID;}outputID: function(){console.log(this.id);}};XYZ = Object.create(Task);XYZ.prepareTask = function(ID,Label){this.setID(ID);this.label = Label;}XYZ.outputTaskDetails = function(){this.outputID();console.log(this.label);}
- 最好将状态保存在委托者内。例如
id和label数据成员直接储存在 XYZ 上。 - 委托行为中,尽量避免在原型链的不同级别使用相同的命名
- this.setID(ID); 调用时
setID(ID)会使用原型链找到方法,由于调用位置触发了 this 的隐性绑定规则,虽然 setID(ID) 方法在 Task 中,this 运行时仍然会绑定到 XYZ
对象中的函数和对象并没有作用域包含关系,更没有原型链的关系。
