【报错】TypeError: Cannot read property ‘url‘ of undefined

【报错】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上的所有属性都绑定到对象上
第四步:返回新对象

猜你喜欢

转载自blog.csdn.net/qq_40797578/article/details/128944210