js箭頭函式深入理解

2021-10-25 17:29:29 字數 1139 閱讀 6107

let f = (a) =>
let f = a =>
let f = a => return a
let f = a => a

f(2) // 2

let f = () => () // 如果沒括號,花括號內會被視作待執行語句
let callback;

callback = callback || function() {} // ok,普通函式

callback = callback || () => {} // syntaxerror

callback = callback || (() => {}) // ok,箭頭函式

沒有(不繫結)arguments不能用new呼叫

沒有prototype屬性

沒有super不能用yield(除非巢狀在允許使用的函式內)

概括的解釋,因為箭頭函式自己是不會建立新的上下文的(作用域)

var b = 2 // window.b = 2

function fun ()

fun() // 2,輸出window.b

// 箭頭函式的this是fun的this,而fun的this是在全域性下執行時才賦值的(window)

function fun()

}fun() // window {}

// 此處定義箭頭函式,則this指向fun

var f = new fun() // fun {},此時是會列印結果的,可以參考new關鍵字

const obj = ,

b: c: () => }}

obj.a() // obj {}

obj.b.c() // window {}

// 可能這裡會被誤解。物件的屬性和物件處於同乙個作用域下,即全域性(無論是否巢狀)

深入理解JavaScript箭頭函式

箭頭函式就是個簡寫形式的函式表示式 並且它擁有詞法作用域的this 值 即不會新產生自己作用域下的this,arguments super 和new.target 等物件 此外,箭頭函式總是匿名的 語法 基礎語法 param1,param2,paramn param1,param2,paramn e...

深入理解js建構函式

在j ascript中,建立物件的方式包括兩種 物件字面量和使用new表示式。1.1物件字面量是一種靈活方便的書寫方式,例如 var o1 這樣,就用物件字面量建立了乙個物件o1,它具有乙個成員變數p以及乙個成員方法alertp。這種寫法的缺點是 每建立乙個新的物件都需要寫出完整的定義語句,不便於建...

Js函式深入理解 函式宣告

js函式深入理解 函式宣告 本質 函式是function型別的乙個例項,即函式是乙個物件,函式名是指向物件的指標 1.如何定義乙個函式?三種方式 a.函式宣告 function a function是關鍵字,a是函式名 b.匿名函式 var a function 這個匿名函式可以看做乙個物件,然後把...