TypeScript的箭頭函數(第1篇)


認識箭頭函數

var fun1 = function(a:number, b:number=2):number{
    return a+b;
}

function fun2(a:number, b:number):number
{
    return a+b;
}

//使用ES6箭頭函數語法定義函數,將原函數的“function”關鍵字和函數名都刪掉,
//並使用“=>”連接參數列表和函數體。

var fun3 = (a:number, b:number):number=>{
    return a+b;
}

(a:number,b:number):number =>{
    return a+b;
}


//===================無參
var fun5 = function(){
    //do something.
}
var fun6 = ()=>{};

//=================單個參數
var fun7 = function(a:number){}
var fun8= (a:number) =>{}
//var fun9 = a => {}; ///js ok,但是ts下面會編譯報錯


//如果只有一個表達式,可以省略 "{}" 和 "return"
///如果包含多條語句,不能省略 "{}" 和 "return"
let fun9 = ()=> "hello";
let fun10 = ()=> {return 'hello'};
let fun11 = (a:number, b:number)=> a+b;
let fun12 = (a:number, b:number)=> {return a+b};
let fun13 = (a:number)=>{
    a=a+1; 
    return a;
};

// fun14 => {key:x};
//y => ({key:y});
(x:number) => ({key:x});

let fun15 = (x:number) => ({key:x});
console.dir(fun15);

let fun16 = (a:number)=>{
    a ++;
    return a;
}
fun16(100);
console.log(fun16(100));



//===================================
var Person = {
    firstName:"hello",
    lastName:"world",
    getFullName:function(firstName:string){    
        console.log(this);
        var first = this.firstName 
        
        var fn = (f:string)=>{
            console.log(this);
            return f+this.lastName;
        }

        return fn.call({firstName:'hh'}, firstName);
    }
}

console.log(Person.getFullName('hi')); /// hiworld


//===================================
var obj = {
    array:[1,2,3],
    sum:()=>{
        console.log("sum:");
        return (i:number,j:number)=>i+j;
    }
}
let fun17 = obj.sum();
//console.log(fun17(5,6));
console.log(obj.sum()(2,3)); // 5 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM