Краткие описания функций JavaScript / jQuery - PullRequest
2 голосов
/ 11 апреля 2010

Я использую плагин jQuery, функции которого определены следующим образом:

    $('#mydiv').pluginAction({
        someproperty: val, 
        format: 'mm hh',
        labels: ['yes', 'no', 'maybe'], 
        labels1: ['never', 'always']
    });

На моей странице HTML у меня есть несколько DIV, которые имеют одинаковые свойства для format, labels, labels1, но разные значения для someproperty. Есть ли какой-то тип JavaScript-нотации, которым я могу воспользоваться, чтобы сократить определение, чтобы у меня не было дублирующегося кода?

Ответы [ 3 ]

6 голосов
/ 11 апреля 2010

Есть несколько способов справиться с этим:

  1. Создать функцию, которая заполняет пробелы; или

  2. Если плагин ваш, по умолчанию эти значения равны вашим.

Пример (1):

function props(val) {
  return {
    someproperty: val,
    format: 'mm hh',
    labels: ['yes', 'no', 'maybe'], 
    labels1: ['never', 'always']
  };
}

$("#mydiv").pluginAction(props("..."));
4 голосов
/ 11 апреля 2010

Cletus имеет очень хороший ответ, который позволяет вам создавать очень читаемый код. Это, вероятно, лучшее решение в вашем случае.

Просто для записи, что-то вроде следующего также возможно. Вы можете создать литерал объекта, хранящий все фиксированные свойства, а затем просто указать добавление дополнительных свойств (например, someProperty в вашем примере) при необходимости, используя jQuery#extend.

var props = {
 format: 'mm hh',
 labels: ['yes', 'no', 'maybe'], 
 labels1: ['never', 'always']
};

$('#mydiv').pluginAction($.extend(props, { someProperty: val }));
1 голос
/ 11 апреля 2010

Нет ничего плохого в том, чтобы дублировать такой код. Это на самом деле проясняет, какое поведение применяется к этому данному div. Однако, если вы говорите о сотнях дубликатов, используйте то, что предложили другие люди.

...