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