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 這個匿名函式可以看做乙個物件,然後把...