TypeScript中有一种用法,成为箭头函数(Arrow Function),写作 ”=>"。
作用:通过 => 箭头定义匿名函数
注意:箭头函数不能用作构造函数(所以必然没有Prototype属性)或者Generator函数
1. 最小化例子:
let func1 = para => para;
console.log(func1(100));
//输出 100
这里定义了一个“直肠子”函数,进什么出什么...
箭头左边是入口参数,箭头右边是具体函数体,最小化时候省略了return。
2. 两个以上入口参数,就需要加小括号了。同理,如果没有入口参数,小括号不能省!
let func2 = (x, y) => x + y;
console.log(func2(100, 200));
// 输出: 300
3. 如果大括号套着函数体,那么返回值需要用return
let func3 = (x, y) => {return x * y; }
console.log(func3(10, 20));
// 输出 200
// let func3 = (x, y) => { x * y; }
// console.log(func3(10, 20)); // 这样会返回 undefine 的
4. 如果函数体里面带赋值的,需要套大括号
let func4 = () => ({varName:"猫哥你好!"})
console.log(func4().varName);
// 输出 猫哥你好!
5. 箭头函数可以处理解构赋值
let func5 = ([varName,age=25]) => [varName,age];
console.log(func5(["猫哥",26]));
// 输出 [ '猫哥', 26 ]
6. 箭头函数本身没有this,但是在声明的时候,能够捕获此函数所在作用域中this,捕获成功后,this指向的对象始终保持不变
let url = "csdn";
function myfunc0(){
this.url = "blog.csdn.com";
let func6=() => {
console.log(this.url);
}
func6();
}
myfunc0();
//输出 blog.csdn.com