$.extend犯过的错误纪录

蛰伏已久 蛰伏已久 2018-06-29

$.extend是写模块时常用的方法,一般我们用来将默认值和用户传来的参数进行合并,最近使用时产生了一个不好查找的bug,特此纪录一下


合并默认值,我采用了如下写法,结果发现一个页面,new几个实例的时候,发现所有的参数,都被覆盖了

this.options=$.extend(default_params,options);

原来,$.extend将 options合并到了derault_params,修改了derault_params的值,所以后续创建实例的时候就出错了

正确的做法:

this.options=$.extend({},default_params,options);

将所有的参数合并到一个空对象,不改变原来的值

分享到

点赞(0)