组件中data为什么是函数
首先我们来看这样一段代码:
function abc() {
return {
name: 'romance',
age: 18
}
}
var obj1 = abc();
var obj2 = abc();
var obj3 = abc();
obj1.name='kobe';
console.log(obj2);
console.log(obj3);
此时我们已经将 obj1 中的 name 改为 ‘kobe’,但是我们来看看打印结果:
此时打印 obj2 和 obj3 都没发生变化,那就意味着obj1、obj2、obj3不是同一个对象。
但是我们现在要是把代码改成这样:
const obj = {
name: 'romance',
age: 18
}
function abc() {
return obj;
}
var obj1 = abc();
var obj2 = abc();
var obj3 = abc();
obj1.name='kobe';
console.log(obj2);
console.log(obj3);
再来看看它的打印结果:
这就表明此时三个obj是一个。
所以data要是写成对象的话,改变一个值,其他的也会发生改变。所以data要用函数。