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

时间:2021-09-01 11:13:06

看到很多人写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不存在,则为空对象),轻松实现,而且不露痕迹,多好啊。