参考资料:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax
https://blog.youkuaiyun.com/qyl_0316/article/details/100547868
<!DOCTYPE html>
<html>
<head>
<title>test spread</title>
</head>
<body>
test spread
<script type="text/javascript">
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
console.log("*********1***********");
console.log(sum(...numbers));
// expected output: 6
console.log("*********2***********");
console.log(sum.apply(null, numbers));
// expected output: 6
console.log("*********3***********");
console.log(...numbers);
console.log("*********4***********");
console.log(...[3]);
var a = [[1], [2], [3]];
var b = [...a];
console.log("*********5***********");
console.log(a);
console.log(b);
var obj1 = { foo: 'bar', x: 42 };
var obj2 = { foo: 'baz', y: 13 };
var clonedObj = { ...obj1 };
// Object { foo: "bar", x: 42 }
console.log("*********6***********");
console.log(clonedObj);
var mergedObj = { ...obj1, ...obj2 };
// Object { foo: "baz", x: 42, y: 13 }
console.log("*********7***********");
console.log(mergedObj);
var obj = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
// var array = [...obj]; // TypeError: obj is not iterable
console.log("*********8***********");
console.log({...obj});
// console.log(array);
var obj = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
var obj2 = obj;
obj2.key3 = 'value333';
console.log("*********9***********");
console.log(obj2);
console.log("**********");
console.log(obj);
var obj = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'};
var obj2 = { ...obj };
obj2.key3 = 'value333';
console.log("*********10***********");
console.log(obj2);
console.log("**********");
console.log(obj);
</script>
</body>
</html>