Функция стиля jQuery по умолчанию использует объекты - PullRequest
0 голосов
/ 06 октября 2009

У меня есть проект, над которым я работаю, где я не могу использовать jQuery. С тех пор, как я использовал jQuery, я очень привык к тому, как параметры можно задавать в функции. Очень хорошо делать это способом "jQuery", так что это не имеет значения для порядка, или даже если вы используете все значения по умолчанию, как это требуется нормальному методу функции.

Итак, мой вопрос: как бы я повернулся так:

function myFunction(param1, param2, param3, param4, param5) {

}

Для метода, похожего на jQuery, без использования jQuery:

function myFunction({
 param1: 'test',
 param2: 'test2'
});

Любая помощь в этом была бы великолепна!

1 Ответ

8 голосов
/ 06 октября 2009

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

function myFunction (options){
  options = extend({ // default values
    param1: 'test',
    param2: 'test2'
  }, options || {});

  alert(options.param1);
}

// helper function to "extend" the 'b' object from 'a'
// by copying its properties
function extend(a, b) {
  for ( var prop in b ) {
    a[prop] = b[prop];
  }
  return a;
}

Тогда, если вы позвоните:

myFunction ({param1:'overriden!'});

options.param1 будет переопределено в вашей функции, а options.param2 останется со значением по умолчанию "test2".

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