$.extend犯过的错误纪录
$.extend是写模块时常用的方法,一般我们用来将默认值和用户传来的参数进行合并,最近使用时产生了一个不好查找的bug,特此纪录一下
合并默认值,我采用了如下写法,结果发现一个页面,new几个实例的时候,发现所有的参数,都被覆盖了
this.options=$.extend(default_params,options);
原来,$.extend将 options合并到了derault_params,修改了derault_params的值,所以后续创建实例的时候就出错了
正确的做法:
this.options=$.extend({},default_params,options);
将所有的参数合并到一个空对象,不改变原来的值
点赞(0)