一. 箭头函数基础使用
1.没有参数函数
let func = () => 123
//等同于 常规函数
let func = function (){
return 123;
}
2.一个参数函数
let func = a => a + a;
//等同于 常规函数
let func = function(a) {
return a + a;
}
3. 多个参数函数
let func = (a, b) => a + b
//等同于 常规函数
let func = function (a, b){
return a + b;
}
4. 返回一个对象
let func = () => ({ a : '1', b : '2' })
//等同于 常规函数
let func = function(){
return { a : '1', b : '2' };
}
5. 如果函数内包含多条语句,就不能省略{} 和return 了;
let func = (a, b) => {
if (a > b){
return a - b;
}
}
//等同于 常规函数
let func = function (a, b) {
if (a>b){
return a-b;
}
}
二. 箭头函数 this 的指向
看下面的示例
<script type="text/javascript">
class App{
run(){
setInterval(() => {
this.clock();
//输出 App 对象
console.log(this);
}, 1000);
}
run(){
var that = this;
setInterval(function () {
that.clock();
//输出 window 对象
console.log(this);
}, 1000);
}
clock(){
console.log(new Date().toLocaleTimeString());
}
}
var app = new App();
app.run();
</script>
示例中, 箭头函数中的 this
始终指向 调用者即 app
对象;
常规的函数指向了window
对象;