setData赋值
来源:20-14 电影页面数据绑定(下)

苝冰洋
2016-12-29
老师,这块我有点看不懂,通过这种方式就能给data域的三个对象赋值了么?
this.setData(readyData) 是给data域设置一个readyData对象,为什么设置了 readyData[inTheaters] = movies,data域中的inTheaters的value值即为movies?
我的理解是:inTheaters是readyData的属性,readyData[inTheaters] = movies这句话相当于把movies值赋值给inTheaters这个属性,但是readyData和data域是什么关系呢?为什么readyData[inTheaters] = movies, data域中的inTheaters的value值即为movies呢?
写回答
1回答
-
1.页面最终绑定的是data对象上的属性(键)
2.setData(obj)方法中要求对象作为参数,他做了两件事
1)他会将obj参数上的属性浅拷贝到data对象上,该功能建议你参考Object.assign()方法的功效
2)obj参数上的属性浅拷贝到data对象的同时,会对页面绑定该属性的地方重新渲染,起到了脏值检查的作用
3.你最后提到data是初始化三个属性为对象。为什么要这样做,举个例子,var a={};a.b=3;意思是给对象a新增个属性b,赋值3这样做没问题,那么var obj;obj.b=3;就会报错了,因为obj为undefined.undefined是不能新增属性b的。我用手机回复的,好累,希望你能明白。532019-07-02
相似问题