pt., 5 kwi 2019 o 08:56 CHU Zhaowei <m...@jhdxr.com> napisał(a): > Here is a MDN document for spread operator in JS: > https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax#Spread_in_array_literals > and hope you find more useful examples. >
The next paragraph in MDN document is spread operator for object literals https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax#Spread_in_object_literals Now JavaScript objects can be used like our array with keys and I simply don't understand why we cannot preserve keys, like in JS object literals Sample code: JavaScript: var a = {foo: true, ...{bar: "baz"}}; // become {foo: true, bar: "baz"} and you can access it via a.foo or as an array dimension a['foo'] - more or less like PHP arrays, right with key as a dimenrsion in array Your RFC covers: PHP: $a = [1, 2, 3, ...[4, 5, 6]]; // resulting [1, 2, 3, 4, 5, 6] What would happen in: a) PHP: $a = ['foo' => true, ...[4, 5, 6]]; // ?? b) PHP $a = ['foo' => true, ...['bar' => 'baz']] // error ?? Don't get me wrong I just see spread operator in function arguments a different feature which allows working with variadic parameters, and we're talking about the different feature here which only use the same operator, right?