// 普通函式
function f1()
f1()
// 箭頭函式: 箭頭函式相當於匿名函式,如果沒有引數,就只寫乙個(),有引數直接寫在(引數1,引數2)
let f2 = () =>console.log("ddd");// 如果函式裡面只有乙個表示式,可以省略{}和return
f2()
let f3 = ()=>和return
console.log("我是箭頭函式");
f1()
}f3()
// 區別1.箭頭函式是匿名函式,所以不能作為建構函式,因此也不能使用new
let func = () =>
let newfunc = new func() //會報錯; uncaught typeerror: func is not a constructor
// 區別2.箭頭函式不繫結arguments,取而代之的是用rest引數解決
function f4(a)
var a = [2,3,5,6,87]
f4(a) // arguments [array(5), callee: ƒ, symbol(symbol.iterator): ƒ]
let f5= (a) =>
f5(3,4,5,78,5) // 會報錯;uncaught referenceerror: arguments is not defined
let f6 = (...a)=>
f6(3,45,6,7,8) // 輸出 3,45,6,7,8
// 區別3.箭頭函式不繫結this,但會捕獲上下文的this ,作為自己的this
var b = 100
var obj =
},c:()=>
}obj.b()
obj.c()
var obj2 = ,
c: function () }}
obj2.b();
obj2.c()();
let obj3 = ,
c:function(n)
return f.call(m,n)}}
console.log(obj3.b(1));
console.log(obj3.c(1));
箭頭函式和普通函式的區別
面試時被問到箭頭函式和普通函式的區別。借用別人的乙個栗子 function make var testfunc make.call testfunc testfunc.call object object可以看到箭頭函式在定義之後,this 就不會發生改變了,無論用什麼樣的方式呼叫它,this 都不...
普通函式和箭頭函式的區別
箭頭函式 let fun 普通函式 function fun 箭頭函式相當於匿名函式,並且簡化了函式定義。箭頭函式有兩種格式,一種只包含乙個表示式,連和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略和return。1 箭頭函式是匿名函式,不能作為建構函式,不能使用new let ...
普通函式和箭頭函式的區別
一 箭頭函式全是匿名函式,普通函式也可以有匿名函式,也可以有具名函式。function a let a function let a 二 箭頭函式不能用於建構函式,不能使用new。三 箭頭函式不繫結this,會捕捉其所在上下文的this指,會作為自己的this值,沒有辦法改變其指向 var obj ...