В jQuery с использованием $ .extend () это избыточно? - PullRequest
3 голосов
/ 28 июня 2010

Эй, мне было интересно, если установка объекта равняется $ .extend (), но установка цели для того же объекта избыточна?

 setOptions(options = $.extend({
        classPrefix: 'imgareaselect',
        movable: true,
        resizable: true,
        parent: 'body',
        onInit: function () {},
        onSelectStart: function () {},
        onSelectChange: function () {},
        onSelectEnd: function () {}
    }, options));

1 Ответ

2 голосов
/ 28 июня 2010

Они так, как вы это закодировали, это не избыточно.Это связано с тем, что переданный в первый объект является измененным, поэтому все свойства в options копируются в анонимный объект, который вы передаете в качестве первого параметра.Таким образом, вам нужно будет присвоить возвращаемое значение $.extend чему-либо, чтобы иметь возможность фактически использовать его.Если бы вы сделали это наоборот:

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

Тогда назначение является избыточным.Также обратите внимание, что порядок передачи объектов важен.Делая это так, как вы это сделали, анонимный объект - это, по сути, «значения по умолчанию», и все, что в options переопределит их.

Наконец, поскольку вы передаете результат в вызов setOptions (который, я предполагаю, сохраняет значение где-то), вам также не требуется явное присваивание options.Но это полностью зависит от того, что setOptions делает и что вам нужно options для дальнейшего ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...