1. 程式人生 > 其它 >ES6_箭頭函式及宣告特點

ES6_箭頭函式及宣告特點

ES6允許使用箭頭(=>)定義函式。

如:

     let fn=(a,b)=>{
         return a+b;
     }
     console.log(fn(2,3));

特點:

1、this是靜態的,this始終指向函式宣告(定義)時所在作用域下的this的值。

比如在全域性作用域先定義連個函式,一個使用箭頭函式定義。

上面兩個函式呼叫都是輸出ace,因為this都是window物件。函式作用域中沒有name變數,於是就去上一級作用域鏈(全域性作用域)找,var宣告的name就是全域性作用域window的屬性。

call方法呼叫,call方法是將一個物件作為自己物件的屬性,而且會改變this指向。

但是,箭頭函式宣告時候的this是全域性上下文物件window,即使是用call也無法改變。

輸出結果為:sabo,ace


2,不能作為構造例項化物件

let Person=(name,age)=>{
            this.name;
            this.age;

        }
let me=new  Person("張三",18);//報錯

3、不能使用arguments;

        let fn=()=>{
            console.log(arguments);//報錯
        };
        fn();

4、箭頭函式的簡寫

①、省略小括號,當形參有且只有一個的時候。
        let add=n=>{
            return n+n;
        }   
        console.log( add(5));
②、省略花括號,當代碼體只有一條語句的時候,而且此時return也必須省略,語句執行的結果就是返回值。
        let  pow=n=>n*n;    
        console.log( pow(9));