android 箭头函数,ES6中箭头函数的作用

ES6中的箭头函数简化了JavaScript中this的处理方式,尤其是在类的方法中。传统函数会导致this指向改变,而箭头函数则会自动绑定到定义时的作用域,避免了使用that或bind来保存this的引用。例如在Person类中,使用箭头函数可以确保setInterval内的this始终指向Person实例,使得代码更加简洁和易读。
摘要由CSDN通过智能技术生成

我们知道在ES6中,引入了箭头函数,其本质就是等同有ES5中的函数。类似于下面的写法:

let test1=() => “abc”;

let test2=() => { return “abc”};

let sum=(a,b) => a+b;

比如上面的3个ES6的箭头函数的写完,如果用ES5就像下面的写完一样。

其实其等同于下面的ES5的写法:

function test1() {

return "abc"

}

function test2(){

return "abc"

}

function sum(){

return a+b;

}

那为什么在ES6中引入了箭头函数呢? 最主要的目的就是解决this指针的问题。

我们知道在ES6中,我们可以创建一个class,如果我们默认在其里面加入一个函数的话,其必须在调用的时候,必须绑定this指针,否则不能访问当前类的实例里面的属性。下面举一个具体的例子,为什么其能解决this指针的问题。

比如下面一个一个Person类:

function Person() {

//Person()构造器定义了`this`指针,指向了其实例本身

this.age = 0;

setInterval(function growUp() {

//在non-strict模式下,growUp()方法定义了‘this’作为一个全局的对象。其

//不同于Person()构造器生成的‘this’指针

this.age++;

}, 1000);

}

var p = new Person();

在ECMAScript 3/5中, 这个this的指针问题可以通过显示的制定this到一个变量,从而把Person()构造器生成的实例this指针,引入到函数中,具体写完如下:

function Person() {

var that = this;

that.age = 0;

setInterval(function growUp() {

// The callback refers to the `that` variable of which

// the value is the expected object.

//这个回调函数引用了`that`变量,其值就代表的是当前对象,而不是一个全局的 //一个this对象

that.age++;

}, 1000);

}

这种写完有点啰嗦和繁杂,那么有没有更为简洁的方式呢?直到ES6出现了箭头函数,才彻底的解决这个问题。下面让我们看看ES6的箭头函数如何写的。

function Person(){

this.age = 0;

setInterval(() => {

// |this| 自动的指向当前Person的构造器生成的Person实例

//是不是感觉很简洁

this.age++;

}, 1000);

}

var p = new Person();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值