开发者

In jQuery, using $.extend(), is this redundant?

开发者 https://www.devze.com 2023-01-05 02:28 出处:网络
Hey, I was wondering if setting an object equal to $.extend(), but setting the target to the same object is redundant?

Hey, I was wondering if setting an object equal to $.extend(), but setting the target to the same object is redundant?

 setOptions(options = $.extend({
        classPrefix: 'imgareaselect',
        movable: true,
        resizable: true,
        parent: 'body',
        onInit: funct开发者_运维问答ion () {},
        onSelectStart: function () {},
        onSelectChange: function () {},
        onSelectEnd: function () {}
    }, options));


They way you've coded it, it's not redundant. That's because the first object passed in is the one that's modified, so all of the properties in options are being copied to the anonymous object you pass in as the first parameter. So you would then need to assign the return value of $.extend to something in order by be able to actually use it. If you'd done it the other way around:

$.extend(options, { ... });

Then the assignment is redundant. Note also that the order you pass objects in is important. By doing it the way you've done it, the anonymous object is basically the "defaults" and anything in options will override them.

Finally, because you're passing the result to a call to setOptions (which I assume saves the value somewhere) you also don't need an explicit assignment to options. But that depends entirely on what setOptions does and what you need options for later...

0

精彩评论

暂无评论...
验证码 换一张
取 消