/ / Може ли JS функция да приеме обект на аргумент без дефинирани параметри? - javascript, функция, параметри, аргументи

Може ли функция JS да приеме обект на аргумент без дефинирани параметри? - javascript, функция, параметри, аргументи

т.е. има ли някакъв начин да се приеме аргумент, напр. низа, ако се извиква функция като така: foo("str") докато е написан така:

function foo(){
console.log(<the_argument>)
}
console.log(foo("str")) // <--- "str"

Отговори:

2 за отговор № 1

Можете да използвате аргументи обект да направи същото:

    function foo() {
if(arguments.length >0) {
return arguments[0];
}
}
console.log(foo("str"));

Допълнителна информация: ES6 носи Параметри за почивка & Разпространение синтаксис, който помага при работа с функции


3 за отговор № 2

Можете да използвате ключовата дума "аргументи", за да получите аргументите в foo ("str"). За пример.

function foo(){
var arg = arguments; // contains array of arguments provided
console.log(arg[0]);
}
console.log(foo("str")); // prints "str"

1 за отговор № 3

Аргументите, предавани на функция JS, могат да бъдат извлечени с помощта на arguments масив във функцията.

function func1(a, b, c) {
console.log(arguments[0]);
// expected output: 1

console.log(arguments[1]);
// expected output: 2

console.log(arguments[2]);
// expected output: 3
}

func1(1, 2, 3);

За повече информация, моля, вижте документацията на Mozilla https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments


1 за отговор № 4

Да, има. Има имплицитно arguments местна променлива. Той е повторяем и може да се използва като масив (макар че не е масив) за достъп до всички аргументи на функцията, без да разчита на формални параметри.

function foo()
{
for (i in arguments)
{
console.log(arguments[i]);
}
}
foo("str","wasdf",9)

виждам Предмет на аргументите, за по-подробно определение.


0 за отговор № 5

Очевидно не. Можете да проверите себе си. Ако сте в ъглова страна, тогава имате нещо наречено DI и можете да получите инжекция.

Но можете да направите така, както да направите променлива навън и достъп до функция. Ако смятате за подходящо, можете да го тествате.

Всъщност можете да го направите, проверете https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments