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