ES6的Lambda表达式

随声附和 提交于 2019-12-08 09:05:37

1、ES5写法

var p1 = document.getElementById('test1');    p1.addEventListener(
            'click',
            function(){ this.style.color = "red"; },
            false
);

2、ES6写法

var p1 = document.getElementById('test1');   p1.addEventListener(
        'click', 
        () => { this.style.color = "red"; }, 
        false
); 

在ES5语法中,this指向其调用着p1;
在ES6语法中,函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。

普通函数中,this对象的指向是可变的;
箭头函数中,this对象的指向是固定的。

this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。

由于箭头函数没有自己的this,所以当然也就不能用call()、apply()、bind()这些方法去改变this的指向。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!