《JavaScript语言精粹》之部件

  首次读《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之间几乎没有任何关联,耦合度低,且函数可重复利用,给多个不同对象添加同一个部件。可用于建造者模式。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值