关于Uncaught TypeError (Cannot read property ..undefined)的解决办法

一、问题描述

     在Vue 的函数中使用 this.$store.commit出现Uncatch TypeError 的情况.
关于Uncaught TypeError (Cannot read property ..undefined)的解决办法_第1张图片
关于Uncaught TypeError (Cannot read property ..undefined)的解决办法_第2张图片
二、解决思路

1.进行使用检查查看报错信息,之前浏览器默认Safari浏览器,好像没有看到检查工具,出问题或者空白页面就不知道咋排错,后面才使用谷歌,使用查看进行排错。

2.分析报错信息:Uncaught TypeError;凭借英语能力猜测是不是拼写错误(哈哈哈,代码能力还比较底,不过英语好还是有助于排错,对于英语基础差的朋友,也记得多学学英语罗),然后查看了之后拼写没有错误。。 接着思考,报错还有undefined,是不是因为声明问题呢??检查了一下main.js的引用,然而并没有问题。后面查了几篇博文,找到了答案,原来是函数形式不对,应该使用=>函数

科普一下
(1)普通函数:调用时被决定。
根据调用我的人(谁调用我,我的this就指向谁)

...
methods:{
F(){ 
console.log()
}
}

this对象是在运行时基于函数的执行环境绑定的:在全局函数中,this指向的是window;当函数被作为某个对象的方法调用时,this就等于那个对象

(2)箭头函数:定义时被决定。
根据所在的环境(我在哪个环境中,this就指向谁),Arrow functions bind the parent context。

()=>{
}

(3)匿名函数:匿名函数的执行环境是全局性的。
匿名函数中this指向window

function(){
}

总结,使用this.$router一类调用时,注意this的对象,和函数的选择

你可能感兴趣的:(#,前端基础&框架,vue,javascript,js)