ES6 箭头函数下的this指向和普通函数的this对比
首先在网上摘抄借鉴了一段代码, 然后再这段代码里面进行分析,通过比较ES6的箭头函数和普通函数的this指指向, 分析其中的不同之处。下面就是代码片段var
name =
"window"
;
1 var zhixiang= { 2 name:"demo", 3 // 传统函数 4 normalFunction: function(){ 5 console.log(this.name); // demo 6 var _this= this; 7 setTimeout(function(){ 8 console.log(this.name); // window 9 console.log(_this.name); // demo 10 },500) 11 }, 12 13 // 箭头函数-作为异步回调 --- 只要是加了setTimeOut或者是setInterval的函数都会自动转为异步模式, 在执行的时候会先执行同步的代码,然后再执行这里面的代码 14 arrowFunction:function(){ 15 setTimeout(()=>{ 16 console.log(this.name) // demo 所以箭头函数在异步中还是有一定的作用域的问题 17 },500) 18 }, 19 20 // 箭头函数-作为直接执行的方法 21 getName3:()=>{ 22 console.log(this.name) // window 箭头函数就不存在作用域的情况,不需要像一般函数那样需要中转一下this的指向,不然就会报出找不到this的问题 23 } 24 };