您的位置:首页 > 其它

es6---箭头函数

2017-09-26 00:00 218 查看
箭头函数是es6一种新的函数编写方式,它可以大大简化原有的函数写法

//ES5写法
function (x){
return x*x;
};

//ES6写法
x => x*x;

箭头函数与匿名函数类似,上面的写法只是最简单的写法,它可以有多条语句和多个参数

//多个参数
var f = (x,y)=>x,y;//有参数,当参数大于一个是,需要用括号将它们括起来

//多条语句
var f1= (x,y)=>{
if(x>y){
return x;
}else{
return y;
};
};

j箭头函数的返回值是多样的,但是,当我们返回的是一个对象是,不能直接返回,需要在对象外包含一个{}如:(person) =>({id:id,name:name});

箭头函数最需要注意的一点就是this的作用域,他与普通函数的this指向不同,普通函数的this指向的是定义时的对象this,而箭头函数是在生效时的this

//箭头函数的this指向
function foo(){
setTimeout(()=>{
console.log("id:",this.id);
},100);
};
var id = 21;
console.log(id);
foo.call({id:22});//22

function Timer(){
this.s1=0;
this.s2 =0;
setInterval(()=> this.s1++,1000);//定时器

setInterval(function(){
this.s2++;//这里的this.s2为什么是NaN?
// console.log(this.s2);
// console.log(this.s2++);
},1000);
};

var timer  = new Timer();

setTimeout(() => console.log("s1:",timer.s1),3100);//延时器
setTimeout(() => console.log("s2:",timer.s2),3100);
setTimeout(function(){
console.log(timer.s2);
},3100)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  箭头函数