普通函式
leta=
functionf(
)
箭頭函式
letb=
()=>
區別:
this的指向不同
let obj =
,//2.箭頭函式中的this指向的是函式定義位置上下文的this
f2:()
=>
} obj.f1(
);//obj
obj.f2(
);//window
箭頭函式中的this會向外層作用域一層一層的查詢
const ccc =
)settimeout((
)=>)}
)settimeout((
)=>
)settimeout((
)=>
----obj物件})
})}}
ccc.
ddd(
)
箭頭函式無法作為建構函式,不能使用new
leta=
()=>
let newa =
newa()
///uncaught typeerror: a is not a constructor
箭頭函式不使用arguments
,使用擴充套件運算子解決
let
fun1
=function
(a)let
fun2
=(a)
=>
letfun3=(
...args)
=>
fun1
(123);
//arguments [123, callee: ƒ, symbol(symbol.iterator): ƒ]
fun2
(123);
//arguments is not defined
fun3
(123);
//[123]
箭頭函式沒有原型
let
fun1
=function()
letfun2=(
)=>
console.
log(fun1.prototype);//
console.
log(fun2.prototype)
;//undefined
箭頭函式不存在變數提公升
fun1()
;function
fun1()
fun2()
;let
fun2=(
)=>
;
js箭頭函式和普通函式的區別
1.不繫結this 在箭頭函式出現之前,每個新定義的函式都有其自己的 this 值 var myobject double function myobject.double 希望value乘以2 myobject.getvalue 1在ecmascript5中將this賦給乙個變數來解決 var m...
js中箭頭函式和普通函式this的區別
最近在學習angularjs的時候由於裡面涉及到了箭頭函式,箭頭函式除了宣告上有點區別以外,和普通函式最主要的區別還是在this的問題上。js中函式中巢狀的函式this不會 繼承 比如說以下 1 var o 5function outer 7 function inner 10 11 outer.c...
Js普通函式中this和箭頭函式中this
this的意思是 我的 如我的名字叫張三,我的名字叫李四。每個人都可以用 我的 張三說我的,那麼 我的 就代表張三,李四說我的,那麼 我的 就代表李四 var name 張三 function a a 完整寫法,windows.a this指向的是windows物件,列印的為張三 var name ...