代码改变世界

写jQuery插件时,一种更好的合并参数的方法

2015-01-14 15:32  盛世游侠  阅读(208)  评论(0编辑  收藏  举报

看到很多人写jQuery插件时居然这样合并参数:

 
   this.defaults = {
        'color': 'red',
        'fontSize': '12px',
        'textDecoration':'none'
    },
    this.options = $.extend({}, this.defaults, opt)//opt是用户传入的参数

理由是这样可以使得defaults独立出来,不被用户覆盖。

 

那为什么不这样呢?

    o = $.extend({
        pic:null,
        leftImg:null,
        drag:null,
        bigpic:null,
        box:null,
        img_zoom:o.box.innerWidth()/o.leftImg.innerWidth()  
    }, o || {});//o是用户传入的参数

借助“||”符号的特性(如果o不存在,则为空对象),轻松实现,而且不露痕迹,多好啊。