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