Можете ли вы объявить аргументы факультативной функции в Javascript? - PullRequest
2 голосов
/ 19 сентября 2009

Как вы можете в php

<?php
function whatever($var='') {

}
?>

Вы можете сделать это в JavaScript?

Ответы [ 4 ]

12 голосов
/ 19 сентября 2009

Если вы хотите установить значение «по умолчанию» для ваших аргументов, вы можете сделать что-то вроде этого:

function whatever(arg1) {
  arg1 = arg1 || 'default value';
}

Имейте в виду, что «значение по умолчанию» будет установлено, если arg1 содержит любое значение falsy , например null, undefined, 0, false, NaN или строка нулевой длины "".

Также в функциях JavaScript у вас есть объект arguments, это массивоподобный объект, который содержит аргументы, переданные функции, поэтому вы даже можете объявить функцию без входных аргументов, и когда вы позвони, можешь передать ему:

function whatever() {
  var arg1 = arguments[0];
}

whatever('foo'); 

Редактировать: Для установки значения по умолчанию, только если оно действительно не определено, например, @ bobbymcr , вы также можете сделать что-то вроде этого:

function whatever(arg1) {
  arg1 = arg1 === undefined ? 'default value' : arg1;
}
3 голосов
/ 19 сентября 2009

В JavaScript вы можете вызывать функцию независимо от параметров.

Другими словами, совершенно законно объявлять такую ​​функцию:

 function func(par1, par3) {

   //do something
  }

и назовите это так:

 func();
2 голосов
/ 19 сентября 2009

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

function DoSomething(x, y, z)
{
    // set default values...

    if (typeof x == "undefined")
    {
        x = 5;
    }

    if (typeof y == "undefined")
    {
        y = "Hi";
    }

    if (typeof z == "undefined")
    {
        z = 3.14;
    }

    // ...
}

Вы можете попробовать вызвать его следующими способами, чтобы увидеть значения по умолчанию, назначаемые при отсутствии параметра:

DoSomething();
DoSomething(4);
DoSomething(4, "X");
DoSomething(4, "X", 7.77);
0 голосов
/ 19 сентября 2009

В JS по умолчанию аргументы не требуются. Для реализации $ arg = '' вы можете использовать

function whatever(vars) {  
   vars = vars || 'default';  
   /* your code */    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...