es6 箭頭函式

2021-10-01 16:06:31 字數 2179 閱讀 9387

// 普通函式:

function

foo(a,

b)foo(1,

2)// 箭頭函式:

letfoo1=(

a,b)

=>

foo1(1

,2)

注意事項:

01. 如果引數只有1個 可以省略小括號

let

foo2=a

=>

foo2(1

)

02. 如果引數只有0個或者2個及2個以上 小括號必須有

let

foo3=()

=>

foo3

()

03. 邏輯語句 一條語句可以省略大括號, 邏輯語句 如果兩條及以上 不可以省略大括號

let

foo4=()

=>

console

.log

(111

)foo4

()

04. 一條邏輯語句 若不帶大括號 也不帶return

let foo5 = (a, b) =>  a + b;

console.log(foo5(4, 5))

箭頭函式和普通函式的區別:

01. this指向問題

普通函式:

var

obj=)},

output

:function

(value)}

obj.

init

()

普通函式解決辦法一:

var

obj=)},

output

:function

(value)}

obj.

init

()

普通函式解決辦法二:

var

obj=

.bind

(this

))// 在函式後使用bind更改this指向

},output

:function

(value)}

obj.

init

()

箭頭函式中的this:

本身箭頭函式中沒有this指向 它的this指向是父作用域 父作用域是init init的this是obj

var

obj=)},

output

:function

(value)}

obj.

init

()

沒有父作用域的箭頭函式:

let

obj=

}obj

.init

.call

(obj

)// call方法改變不了this指向

02. 不能使用arguments

普通函式:

let

obj=

}obj

.init(1

)

箭頭函式:

let

obj=

}obj

.init(1

)

03. 不能當做建構函式

普通函式

let obj = 

}new obj.init()

箭頭函式

let

obj=

}new

obj.

init

()// 報錯 obj不能是乙個建構函式

小練習:

自己執行的時候this執行

隱式this 指向變化

顯示this 指向變化

new 指向

箭頭函式this指向

es6箭頭函式

本例是在了解es6知識後在原來定義函式的基礎上進行理解var searchvalue 查詢匹配物件 var button var input var select button if searchvalue.input undefined button.click else 重新整理 tableli...

es6 箭頭函式

1.單引數 function cheng a 3 let cheng a 3 a a console.log cheng 9 2.多引數 function add a,b let add a,b a b 預設返回值 console.log add 3,9 3.無返回值 function add a,...

ES6 箭頭函式

es6 中,箭頭函式就是函式的一種簡寫形式,使用括號包裹數,跟隨乙個 緊接著是函式體 var getprice function 箭頭函式 var getprice 9.15 箭頭函式不僅僅是讓 變得簡潔,函式中 this 總是繫結總shi 指向物件自身 function person 1000 使...