VUE
1.VUE组件中的data必须是函数
类别引用数据类型
Object是引用数据类型,如果不用function返回,每个组件的data都是内存的同一个地址,一个数据改变了其他也改变了;
JavaScript只有函数构成作用域(注意理解作用域,只有函数{}构成作用域,对象的{}以及if(){}都不构成作用域),data是一个函数时,每个组件实例都有自己的作用域,每个实例相互独立,不会相互影响。
REACT
基础JS
1. JS 箭头函数与普通函数的区别
https://zhuanlan.zhihu.com/p/57204184 知乎
1.箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
2.箭头函数没有arguments,如果要用,可以用 rest 参数代替 (注意在node环境下是有arguments的)
3.箭头函数不能作为构造函数,不能使用new
4.箭头函数没有原型,不能继承
5.箭头函数不能当做Generator函数,不能使用yield关键字
6.箭头函数体内的this对象,就是定义该函数时所在的作用域指向的对象,而不是使用时所在的作用域指向的对象。bind()、call()、apply()均无法改变指向。
普通函数内的this执行调用其函数的对象。
2种函数的this代表不一样:
f1是箭头函数,this代表上层对象,若无自定义上层,则代表window。
f2是普通函数,this代表当前对象。
在这里插入图片描述
在这里插入图片描述
箭头函数的call()或apply()函数,不会影响到this的代表对象