function ceshi(test,lyj,param1,parm2){
    console.log(arguments)
}
var params = [2,3];
ceshi(eval('2,3'));

Если параметры не являются неопределенными, как я могу передать параметры через метод. Я хочу реализовать результат ниже.

Функция имеет фиксированные параметры, но у меня есть более одной функции, как

ceshi(1,2,123)
ceshi(1,3123)
ceshi('xxx','ssssss','12313',12)
2
NC LI 28 Авг 2017 в 13:24

3 ответа

Лучший ответ

Чтобы вызвать функцию, передавая аргументы из массива

  1. Либо используйте оператор распространения ceshi(...params)
  2. Используйте функцию apply, чтобы вызвать ее ceshi.apply(<Context>, params)
1
Koushik Chatterjee 28 Авг 2017 в 10:46

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

function ceshi(...params) {
  console.log(params[0]);
  console.log(params[1]);
  console.log(params[2]);
}

Или используйте переменную «arguments» внутри функции следующим образом:

function ceshi() {
  console.log(arguments[0]);
  console.log(arguments[1]);
  console.log(arguments[2]);
}

Чтобы глубже понять это, я настоятельно рекомендую вам прочитать этот материал.

1
AJ Hsu 28 Авг 2017 в 10:34

Вы можете установить параметры с помощью объекта, например:

        function ceshi(options)
        { 
            var param1= options.param1 || "dafaultValue1";
            var param2= options.param2 || "defaultValue2";
            console.log(param1);
            console.log(param2);
        }

        ceshi({param1: "value1", param2:"value2"});
        ceshi({param2:"value2"});
        ceshi({param1: "value1"});
0
javier__nogales 28 Авг 2017 в 10:43