箭頭函式:
let fun = () =>
普通函式:
functionfun()
箭頭函式相當於匿名函式,並且簡化了函式定義。箭頭函式有兩種格式,一種只包含乙個表示式,連和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略和return。
let funconstructor = () =>let fc = new funconstructor();
報錯:uncaught typeerror:funconstructor is not a constructor
functiona(a)
a(1,2,3,4,5,8); //
[1, 2, 3, 4, 5, 8, callee: ƒ, symbol(symbol.iterator): ƒ]
let b = (b)=>
b(2,92,32,32); //
uncaught referenceerror: arguments is not defined
let c = (...c) =>
c(3,82,32,11323); //
[3, 82, 32, 11323]
(箭頭函式不會重新繫結this,普通函式會)
var obj =}, c:
function
() }
}obj.b();
obj.c();
var obj =,c: function
() }
}obj.b();
obj.c()();
let obj2 =,c: function
(n) ;
return
f.call(m,n);
}};console.log(obj2.b(1)); //
11console.log(obj2.c(1)); //
11
var a = ()=>function
b()console.log(a.prototype);
//undefined
console.log(b.prototype); //
總結:普通函式的this指向呼叫它的那個物件
補充:generator函式可以返回多次
generator由function*
定義(注意多出的*
號),並且,除了return
語句,還可以用yield
返回多次。
function*foo(x)
箭頭函式與普通函式區別
1 箭頭函式是匿名函式,不能作為建構函式,不能使用new 2 箭頭函式不繫結arguments,取而代之用rest引數 解決 3 this的作用域不同,箭頭函式不繫結this,會捕獲函式定義的上下文中的this值,作為自己的this值,且一直不變 4 箭頭函式沒有原型物件 5 箭頭函式不能當作gen...
箭頭函式與普通函式的區別
箭頭函式和普通函式的區別 首先就是 箭頭函式作為匿名函式,是不能作為建構函式的 再者就是更重要的一點 箭頭函式的特點就是不繫結this和arguments 舉個例子 settimeout function 3000 以上是乙個延時定時器中的普通function 我們都知道定時器中會改變this的指向...
箭頭函式與普通函式的區別
箭頭函式 let fun 普通函式 function fun 箭頭函式相當於匿名函式,並且簡化了函式定義。箭頭函式有兩種格式,一種只包含乙個表示式,連和return都省略掉了。還有一種可以包含多條語句,這時候就不能省略和return。箭頭函式是匿名函式,不能作為建構函式,不能使用newlet fun...