почему есть вызов функции в переменной в плагине jquery - PullRequest
1 голос
/ 22 июня 2010

Я хочу попытаться понять использование этих конструкций, потому что я не понимаю.

Если я увижу это в плагине

function configuration(user_settings) {
    //Override the default settings with the user settings
 defaults = { 
 time_in_seconds: 3600,
 time_format: 'ss',
 tick: function(timer, time_in_seconds, formatted_time) {},
 buzzer: function(timer) {},
 autostart: true
  };
  return $.extend(defaults, user_settings);

}

тик вызывается в плагине и устанавливает новые значения, но когда я закомментирую эти строки, все по-прежнему работает.

Какова основная идея этого.Я посмотрел на страницу github , но объяснений нет

РЕДАКТИРОВАТЬ

Если плагин повторяется, он устанавливает параметры галочки1018 *

settings.tick(timer, current_time, formatted_time);

Как мне установить user_setting для тика, который все еще использует эти параметры?

Другими словами, получить что-то между этими {} скобками выполнения.

РЕДАКТИРОВАТЬ Я провел еще несколько испытаний и, по-видимому, можно в любое время передать любое количество параметров.Просто сделайте что-то вроде

$("#countdown_update").createTimer({time_in_seconds: ( delay? delay/1000 : minTimeBetweenUpdates/1000 ),
        tick:function(one,two){$('#test').html('test '+one+two);}});

Это даст вам объект таймера и time_in_seconds на выходе

спасибо, Ричард

Ответы [ 3 ]

4 голосов
/ 22 июня 2010

Скорее всего, он все еще работает, потому что плагин уже имеет значения по умолчанию, назначенные в коде.Закомментировав ваши строки, плагин возвращается к конфигурации по умолчанию.

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

Вы удаляете значение по умолчанию для функции "галочка", когда вы его комментируете. Вероятно, он все еще работает, потому что код достаточно умен, чтобы не использовать функцию, если она не имеет значения.

Тиковая функция, вероятно, вызывается каждый раз при повторении таймера. По умолчанию, как показано здесь, это пустая функция, поэтому она ничего не собирается делать, но вы можете переопределить тик с помощью функции, которая делает что-то (например, каждый раз, когда она выдает предупреждение, просто чтобы она работала) .

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

Этот код расширяет объект по умолчанию с помощью user_settings.Таким образом, user_settings переопределит любые свойства с аналогичными именами в объекте по умолчанию.Однако если в объекте user_settings отсутствуют какие-либо свойства по умолчанию, эти свойства будут добавлены в объект user_settings и возвращены вызывающей стороне (как новый объект).

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