Javascript 在jQuery中,使用$.extend(),这是多余的吗?
嘿,我想知道是否将一个对象设置为$.extend(),但将目标设置为同一个对象是多余的Javascript 在jQuery中,使用$.extend(),这是多余的吗?,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,嘿,我想知道是否将一个对象设置为$.extend(),但将目标设置为同一个对象是多余的 setOptions(options = $.extend({ classPrefix: 'imgareaselect', movable: true, resizable: true, parent: 'body', onInit: function () {}, onSelectStart: function
setOptions(options = $.extend({
classPrefix: 'imgareaselect',
movable: true,
resizable: true,
parent: 'body',
onInit: function () {},
onSelectStart: function () {},
onSelectChange: function () {},
onSelectEnd: function () {}
}, options));
按照你的编码方式,这不是多余的。这是因为传入的第一个对象是已修改的对象,因此
options
中的所有属性都将复制到作为第一个参数传入的匿名对象中。因此,您需要将返回值$分配给某个对象,以便能够实际使用它。如果你用另一种方式做:
$.extend(options, { ... });
那么这个任务是多余的。还要注意,传递对象的顺序很重要。按照您的方式操作,匿名对象基本上是“默认值”,并且选项中的任何内容都将覆盖它们
最后,由于您将结果传递给对setOptions
的调用(我假设它将值保存在某个地方),因此您也不需要对options
进行显式赋值。但这完全取决于setOptions
做什么,以及您以后需要options
做什么