es6---箭头函数

箭头函数是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)

 

转载于:https://my.oschina.net/u/3470995/blog/1543746

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值