javascript es6 箭头函数
1、箭头函数示例
let add = (a,b) => a + b //没有语句块时,默认作为返回值
add(1,2);
var multi = (a,b) => {return a * b;} //在语句块中返回值
multi(1,2);
2、如果箭头表达式仅仅是简化函数的命名,为什么要改变原来习惯而去使用?
箭头函数内部没有constructor方法,也没有prototype,所以不支持new操作。但是它对this的处理与一般普通函数不一样,箭头函数的this始终指向函数定义时的this,而非执行时。
3、箭头对this的处理与一般普通函数不一样,箭头函数的this始终指向函数定义时的this,而非执行时。实例验证
/*this会发生改变*/ function es6() { var obj = { x: 1, func: function () { console.log(this.x); } test: function () { setTimeout(function () { alert(this); //指针转移:setTimeout由js调用所以this window对象 this.func(); //报错:func没定义 }, 1000); } } } /*改为箭头函数,避免this发生变化,让this始终指向函数定义*/ function upgradeEs6() { var obj = { x: 1, func: function () { console.log(this.x); } test: function () { setTimeout(() => { alert(this); this.func(); }, 1000); } } }
感谢您的阅读,您的支持是我写博客动力。