【报错】TypeError: Cannot read property ‘url’ of undefined
写微信小程序时的报错
-
在想要进行模拟双向数据绑定时报错,显示找不到
setData
方法 -
原因:this指向的函数的原型链上没有该方法,所以Undefined
-
解决:将函数改成箭头函数,让这个作用域内的this值指向下一层作用域,而下一层作用域是有setData这个方法的
拓展一下箭头函数与普通函数的区别:(自己理解,较为口语化)
最重要的区别就是 箭头函数没有this值,指向的是上一层作用域的this
,普通函数的this值是谁调用就指向谁
且 call() apply() bind()无法改变箭头函数中this的指向
其次 1.长得不一样 箭头函数 ()=>{}
2. 箭头函数都是匿名函数,而普通函数可以有匿名函数,也可以有具名函数
3. 箭头函数不能被new,也就是不能是构造函数,不能创建自己的对象实例,也没有原型prototype
4. 箭头函数没有arguments,但是可以用 扩展运算符 … 来 实现使用剩余参数
再扩展一下 new 这个做了什么事
第一步: 创建一个空的对象
第二步: 将构造函数的this指向这个对象
第三步: 执行构造函数代码,添加属性方法,将this上的所有属性都绑定到对象上
第四步:返回新对象