《JavaScript语言精粹》之部件

来源:互联网 发布:js修改url 不跳转 编辑:程序博客网 时间:2024/06/09 20:15
  首次读《JavaScript语言精粹》时,对这一部分的内容还不能理解,2个月后自己再静下心来看,才大概弄清楚,由于是自己琢磨出来的,难免有错误。
  个人认为,部件可以看成是一个对象的功能模块,故部件的组装可以看作这个对象的功能模块的扩展。而JavaScript中的对象实际上也是属性的集合,故对象功能模块的扩展,实际上也就是给对象添加额外的属性和方法。一般来说,对象的功能模块是在对象的构造过程中添加,耦合度较高。而在这本书中,作者采用一种松耦合的方式来组装部件,即将需要组装部件的对象作为一个传入参数,再在函数内部给传入的对象添加属性。例子:
var o = {},    addSayName = function(object) {        if (object.name === undefined) {            object.name = "jiuong";        }        object.sayName = function() {            console.log(this.name);        }        return object;    };o = addSayName(o);console.log(o); // {name: "jiuong", sayName: function}o.sayName(); //"jiuong"
  可看到,addSayName和o之间几乎没有任何关联,耦合度低,且函数可重复利用,给多个不同对象添加同一个部件。可用于建造者模式。
0 0
原创粉丝点击