es6允许使用箭头 =>定义函数
var f = v => v; 等同于 var f = function (v) { return v;};
函数表达式 =参数=函数体
var zerofill = val => val>=10 ?val:'0'+val
var zerofill=function(val){
if(val>=10){
return val;
}else{
return '0'+val
}
}
var sum = (num1,num2) => num1+num2 等同于 var sum = function (num1,num2){return num1+num2; };
使用注意事项:1.不可以当作构造函数,也就是不能使用new命令,否则会抛出一个错误。2.函数体内的this对象,就是定义时所在的对象,而不是用时所在的对象。
eg2:function foo(){
setTimeout(() => {
console.log('id:',this.id);
},100);
}
var id = 21;
foo.call({id:42}); //id:42 因为setTimeout属于window对象的函数,一般情况下this指向widow,而在箭头函数里面this指向了定义时所在的对象,而不是用时所在的对象
网友评论