Javascript 在jQuery中,使用$.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

嘿,我想知道是否将一个对象设置为$.extend(),但将目标设置为同一个对象是多余的

 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
做什么