普通函式this:
箭頭函式this:
區別:箭頭函式是匿名函式,不能作為建構函式,不能使用new
let
func=(
)=>
let fc =
newfunc()
;// typeerror: func is not a constructor
箭頭函式不繫結arguments,取而代之用rest引數…解決
function
fn1(a)
}let
fn2=
(b)=>
letfn3=(
...c)
=>
fn1(1)
;fn2(2
);fn3(3)
;
箭頭函式會捕獲其所在上下文的 this 值,作為自己的 this 值
const obj =},
c:function()
}}obj.b(
); obj.c(
);
let obj2 =
, c:
function
(n);
return f.
call
(m,n);}
};console.
log(obj2.b(
1));
// 11
console.
log(obj2.c(
1));
// 11 而不是 21
箭頭函式沒有原型屬性
leta=
()=>
functionb(
)console.
log(a.prototype)
;// undefined
console.
log(b.prototype)
;//
箭頭函式不能當做generator函式,不能使用yield關鍵字 箭頭函式與普通函式的區別是什麼?如何實現乙個new
箭頭函式是普通函式的簡寫,可以更優雅的定義乙個函式,和普通函式相比,有以下幾點差異 2 不可以使用 arguments 物件,該物件在函式體內不存在。如果要用,可以用 rest 引數代替。3 不可以使用 yield 命令,因此箭頭函式不能用作 generator 函式。4 不可以使用 new 命令,...
內聯函式與普通函式的區別是什麼
內聯函式是 被插入到呼叫者 處的函式。如同 define 巨集,內聯函式通過避免被呼叫的開銷來提高執行效率,尤其是它能夠通過呼叫 過程化整合 被編譯器優化。內聯函式和巨集很類似,而區別在於,巨集是由預處理器對巨集進行替代,而內聯函式是通過編譯器控制來實現的。而且內聯函式是真正的函式,只是在需要用到的...
內聯函式與普通函式的區別是什麼
內聯函式是 被插入到呼叫者 處的函式。如同 define 巨集,內聯函式通過避免被呼叫的開銷來提高執行效率,尤其是它能夠通過呼叫 過程化整合 被編譯器優化。內聯函式和巨集很類似,而區別在於,巨集是由預處理器對巨集進行替代,而內聯函式是通過編譯器控制來實現的。而且內聯函式是真正的函式,只是在需要用到的...