ES6新特性之箭頭函式與function的區別

2022-02-18 04:47:17 字數 1479 閱讀 5260

// function的寫法

function fn(a, b)

// 箭頭函式的寫法

let foo = (a, b) =>

在function中,this指向的是呼叫該函式的物件;

//使用function定義的函式

function foo()

var obj = ;

foo(); //window

obj.aa() //obj

而在箭頭函式中,this永遠指向定義函式的環境。

//使用箭頭函式定義函式

var foo = () => ;

var obj = ;

foo(); //window

obj.aa(); //window

function timer() , 1000); // 這裡的this指向timer

// 普通函式

setinterval(function () , 1000);

}var timer = new timer();

settimeout(() => console.log('s1: ', timer.s1), 3100);

settimeout(() => console.log('s2: ', timer.s2), 3100);

// s1: 3

// s2: 0

//使用function方法定義建構函式

function person(name, age)

var lenhart = new person(lenhart, 25);

console.log(lenhart); //

//嘗試使用箭頭函式

var person = (name, age) =>;

var lenhart = new person('lenhart', 25); //uncaught typeerror: person is not a constructor

function存在變數提公升,可以定義在呼叫語句後;

foo(); //123

function foo()

箭頭函式以字面量形式賦值,是不存在變數提公升的;

arrowfn(); //uncaught typeerror: arrowfn is not a function

var arrowfn = () => ;

console.log(f1); //function f1() {}   

console.log(f2); //undefined

function f1() {}

var f2 = function() {}

ES6新特性之變數與箭頭函式

es6中新增了let與const來定義變數 console.log a 這裡的a指的是 塊裡的a上方 可以輸出結果為1,因為var是全域性宣告的,所以,即使是在區塊裡宣告,但仍在全域性起作用 再來看看下面這段 var a 1 console.log a 輸出為2,因為var是全域性宣告的 總結 用v...

ES6特性 箭頭函式

es6允許使用 箭頭 定義函式。基本語法 引數 函式體 var f v v 等價於 var f function v 如果箭頭函式不需要引數或需要多個引數,需要使用 括起來 var f 1 等價於 var f function var sum a,b a b 等價於 var sum function...

ES6新特性 函式的簡寫(箭頭函式)

var fn function 例如 var add function a,b 或者 function fn 例如 function add a,b 將原函式的 function 關鍵字和函式名都刪掉,並使用 連線引數列表和函式體。function add a,b 簡寫為 a,b var add f...