JavaScript: 箭头函数 与函数(function)的区别

JavaScript: 箭头函数(=>) 与函数(function)的区别

在Vue项目中,使用Element-UI后,浏览器控制台报错!

具体错误如下:
在这里插入图片描述

Uncaught (in promise) TypeError: Cannot read property '$message' of undefined     at eval

此时,前端接口代码如下:

register() {

     var _this = this

     http({

		// 假设后台需要的是表单数据这里你就可以更改
		headers: {
	
		"Content-Type": "application/json;charset=UTF-8"
		
		},
	
	      method: 'post',
	      
		url: 'http://localhost:8080/encryption/register',
	
		data: {
	
	        registerCode: _this.registerCode
	
		},
	
		responseType: 'json'
	
	}).then( function (res) {
	
		console.log(res);
	
		var code = res.code;
		var info = res.info;
	
		if (res.code == 200) {
		
	        this.$message.success(info);
	        
			_this.$router.push("/login");
		
		} else {
			
	        this.$message.warning(info);
	
	      }
	      
	    // 使用箭头函数时, 则可以直接使用this
	    // 箭头函数没有独立的作用域
	}).catch((err) => {
	
	      console.log(err);
	      
	      this.$message.error("global error!");
	
	});

}

Solution:

在这里插入图片描述

使用function, 而不使用箭头函数时, 不可以直接使用 this ;因为, function 有独立的作用域;
所以,需要在进入 function 作用域前,需要为 this 建立副本,保留进入function函数作用域前的 this 权限,即:

在这里插入图片描述

在使用箭头函数时, 则可以直接使用this;因为,箭头函数没有独立的作用域。
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值