展开运算符(Spread operator)返回的不是一个对象,而是一个新的数组或对象。展开运算符用于将数组或对象展开为单独的元素,使它们可以在函数调用、数组字面量或对象字面量中作为单独的参数或属性。
当使用展开运算符 ... 来展开数组时,它会创建一个包含原数组所有元素的新数组。例如:
〓〓javascript代码如下:〓〓
const arr1 = [1, 2, 3];
const arr2 = [...arr1];
console.log(arr2); // 输出: [1, 2, 3]
console.log(arr1 === arr2); // 输出: false
在这个例子中, [...arr1] 创建了一个包含 arr1 中所有元素的新数组 arr2 。
当使用展开运算符 ... 来展开对象时,它会创建一个包含原对象所有属性的新对象。例如:
〓〓javascript代码如下:〓〓
const obj1 = { name: 'Alice', age: 25 };
const obj2 = { ...obj1 };
console.log(obj2); // 输出: { name: 'Alice', age: 25 }
console.log(obj1 === obj2); // 输出: false
在这个例子中, { ...obj1 } 创建了一个具有相同属性的新对象 obj2 。
因此,展开运算符返回的是一个新的数组或对象,而不是一个对象本身。