參考:
1.「箭頭函式」(arrow function)是
規格裡面的用語。事實上,整個規格裡面一次也沒有提到lambda
。
2.「箭頭函式」的this,總是指向定義時所在的物件,而不是執行時所在的物件
。這句話是對的,並沒有寫錯
3.function
foo(),
100);
} foo
.call
();請問,上面**的,到底是箭頭函式定義時所在的物件,還是執行時所在的物件?
你認為,答案是後者。這是不對的。
因為,這個例子中,箭頭函式位於foo
函式內部。只有foo
函式執行後,它才會按照定義生成,所以foo
運 行時所在的物件,恰好是箭頭函式定義時所在的物件。
4. 我對上面這個例子,做了一下修改。
function
foo() ,
100);
} var
id =
21;
//加入這行
foo.
call
( );
請問,上面兩個id
,哪個是箭頭函式定義時所在的物件,哪個是箭頭函式執行時所在的物件?
5.你把箭頭函式所在的函式與箭頭函式本身混淆了。 6.
最後,我再舉乙個例子。
請問,下面的**執行結果是什麼?
functionfoo() ; };
};} varf =
foo.call();
vart1
=f.call()()();
vart2
=f().call()();
vart3
=f()().call();
關於箭頭函式
一 為什麼存在 const person 1000 person.sayhello 因為setinterval執行的時候,是在全域性作用域下的,所有this指向的是全域性window,而window上沒有name和age,所以輸出的是undefined。通常的寫法是快取this,然後在setinte...
關於JavaScript的箭頭函式
箭頭函式是乙個簡寫形式的函式表示式,並且它擁有詞法形式的this值 基本用法 var f v v 這個函式等同於 var f function v var sum num1,num2 num1 num2 等同於 var sum function num1,num2 first last 等同於 fu...
關於箭頭函式的思考
自從有了es6箭頭函式這個靈活的功能,現在寫函式都習慣寫成箭頭函式格式 然而如果不理解箭頭函式的原理,濫用它也會造成很大的影響。思考下面這個問題 let func value console.log value let func function value 我們到平台上測試一下,顯然兩者不等。le...