我想知道以下两个JS语句之间是否有任何差异(性能,内存使用),是否建议使用一个而不是另一个,以及背后的原因。
语句1(赋值)
const fooOne = { a: 1, b: 2 };
const barOne = fooOne;
语句2(使用函数表达式)
const fooTwo = () => ({ a: 1, b: 2 });
const barTwo = fooTwo();
两个语句产生相同的结果:
console.log(barOne); // outputs {a: 1, b: 2}
console.log(barTwo); // also outputs {a: 1, b: 2}
在这种情况下,使用箭头函数(大部分)是语句 1 的迂回方式。
更改一个变量会更改另一个变量,语句类型为 1:
const fooOne = { a: 1, b: 2 };
const barOne = fooOne;
barOne.a = 3;
// 3, 3
// Note: "const" object is modified
console.log(barOne.a, fooOne.a)
const fooTwo = () => ({ a: 1, b: 2 });
const barTwo = fooTwo();
barTwo.a = 3;
// 3, 1
console.log(barTwo.a, fooTwo().a)