jQuery имеет очень аккуратный метод extend
, который объединяет 2 объекта в один.Зачем передавать пустой объект в метод расширения jQuery?
На jQuery Plugins authoring page они показывают пример следующим образом:
var settings = $.extend({
'location' : 'top',
'background-color' : 'blue'
}, options);
Однако, я видел много плагинов передать пустой объект в качестве первого параметра, например, так:
var settings = $.extend({}, {
'location' : 'top',
'background-color' : 'blue'
}, options);
Что касается как я могу судить, эти двое делают то же самое. Единственное различие было бы, если бы defaults
хранились в своей собственной переменной:
var defaults = {
'location' : 'top',
'background-color' : 'blue'
},
settings = $.extend({}, defaults, options);
Таким образом, вы всегда можете получить доступ к по умолчанию без них быть переопределены options
.
Вот вопрос: Почему так много плагинов авторы решили передать пустой объект extend
, даже если они не хранят значения по умолчанию в переменной?
Я что-то упустил?
Кажется бессмысленным для меня. Это делает населенный, копируя его в пустую и отбрасывая. Ваш третий пример показывает действительную причину. Я предполагаю, что люди это делают, потому что они не думают о том, что они делают. –
@amnotiam Это именно то, что я думаю, но я видел * так много * плагинов. Ясно, что я что-то пропустил ... –
Нет, я думаю, что проблема в том, что вы * что-то получаете. –