Параметры Javascript: наличие множества параметров со многими значениями по умолчанию - PullRequest
1 голос
/ 13 февраля 2011

У меня есть функция со многими параметрами и многими значениями по умолчанию.

function foo(p1 ,p2, p3, p4, p5, p6){
    var p1 = p1 || 'default1'; 
    var p2 = p2 || 'default2'; 
    var p3 = p3 || 'default3'; 
    var p4 = p4 || 'default4'; 
    var p5 = p5 || 'default5'; 
    var p6 = p6 || 'default6'; 
}

Как я могу успешно определять только как p1 и p6, а не как остальные?в Scala вы можете сделать foo(p1='something1',p6='something6')

Ответы [ 3 ]

5 голосов
/ 13 февраля 2011

Вы должны взять объект со свойствами для параметров.

Например:

function foo(options) {
    var p1 = options.p1 || 'default1'; 
    ...
}

foo({ p1: 3, p6: "abc" });
2 голосов
/ 13 февраля 2011

Вы можете использовать один параметр, который является объектом, и сделать jQuery extension для значений по умолчанию, таких как:

function foo(args) {
   jQuery.extend({
      p1: 'default1',
      p2: 'default2',
      p3: 'default3',
      p4: 'default4',
      p5: 'default5',
      p6: 'default6'
   }, args);
}

foo({p1: 'one', p6: 'six'});

Любые свойства, определенные во втором параметре для расширения, будут перезаписывать свойства в первом параметре.

1 голос
/ 13 февраля 2011

Они называются «именованными параметрами», и на них есть несколько учебных пособий (с использованием объектов, как в ответе @ SLaks):

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