Синтаксис { ...obj }
называется " Свойства покоя / расширения объекта " и является частью ECMAScript 2018, который не поддерживается Edge Legacy. Вы можете использовать Вавилон , чтобы перенести его.
Если вы просто хотите использовать его в средах, отличных от Node.js, вы можете использовать babel-standalone . Вам просто нужно загрузить babel-standalone в ваш скрипт и написать скрипт, который вы хотите преобразовать, в тег скрипта с типом «text / babel» или «text / jsx». , результат в Edge Legacy будет {"a":"a","b":"b","c":"c","d":"d"}
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.1/babel.min.js"></script>
</head>
<body>
<script type="text/babel">
let a = { a: 'a', b: 'b' };
let b = { c: 'c', d: 'd' };
let c = { ...a, ...b };
console.log(JSON.stringify(c));
</script>
</body>
</html>