JS複習 6 普通函式和箭頭函式

2021-10-09 10:34:20 字數 1485 閱讀 6634

普通函式

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 ...