Недавно я обнаружил, что этот синтаксис работает в JavaScript (Chrome 53):Названный элемент массива используется в определении функции
function foo([param1]) { // Function argument is declared as array and param1 is used as variable? What is the name of this syntax?
console.log(param1);
}
foo(['TestParameter1']); // Case 1 - works. Output: TestParameter1
foo('TestParameter1'); // Case 2 - works??? Why? Output: TestParameter1
foo(123); // Case 3 - does not work - VM860:1 Uncaught TypeError: undefined is not a function(…)
Result => TestParameter1 // this is the result
Я вижу, что param1 можно использовать в качестве переменной, которая ссылается на элемент с индексом 0 в первом аргументе (объявлен как массив).
Мои вопросы:
1) Как этот синтаксис имени (кнопки [param1] часть, которая позволяет использовать param1 в качестве переменной)?
2) Почему «Дело 2» работает? Есть ли автоматическое преобразование?
Как определяется 'item1'? – Redu
@Redu определяется как в примере: function foo ([param1]) {} –
[Destructuring] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment). – Xufox