Я могу использовать jQuery.extend для моделирования перегрузки метода?

Когда я начинал, я не знал, что было Paginator, удостоверьтесь, что Вы знаете о его существовании!!

6
задан Shog9 23 October 2009 в 04:37
поделиться

2 ответа

Вы пытаетесь сделать что-то вроде того, что называется в некоторых языках перегрузкой метода .

JavaScript не поддерживает это таким образом.

JavaScript очень универсален и позволяет вам реализовать эту функцию разными способами.

Для вашего конкретного примера, вашей функции add , я бы рекомендовал вам создать функцию, которая принимает произвольное количество параметров, используя объект arguments .

jQuery.extend(jQuery, {
  add: function (/*arg1, arg2, ..., argN*/) {
    var result = 0;

    $.each(arguments, function () {
      result += this;
    });

    return result;
  }
});

Затем вы можете передать любое количество аргументов:

alert(jQuery.add(1,2,3,4)); // shows 10

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

function test () {
  if (arguments.length == 2) { // if two arguments passed
    if (typeof arguments[0] == 'string' && typeof arguments[1] == 'number') {
      // the first argument is a string and the second a number
    }
  }
  //...
}

Проверьте В следующей статье он содержит очень интересную технику, которая использует преимущества некоторых возможностей языка JavaScript, таких как замыкания, применение функций и т.д., для имитации перегрузки метода :

15
ответ дан 8 December 2019 в 13:00
поделиться

Я думаю, это просто перезапишет первое свойство «добавить» вторым определенным вами свойством «добавить». Это полезно при разработке плагинов, и вы хотите предоставить список разумных значений по умолчанию для объекта конфигурации.

3
ответ дан 8 December 2019 в 13:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: