-1
A
回答
2
是的,這是預期的行爲,則使用箭頭函數時,這個捕捉到封閉的上下文的值,以使得:以下更多信息
function Person(){
this.age = 0;
setInterval(() => {
this.age++; // |this| properly refers to the person object
}, 1000);
}
var p = new Person();
參見詞法本節中的MDN頁: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Lexical_this
這是偉大的,因爲以前我們不得不這樣寫代碼:
function Person() {
var self = this; // Some choose `that` instead of `self`.
// Choose one and be consistent.
self.age = 0;
setInterval(function growUp() {
// The callback refers to the `self` variable of which
// the value is the expected object.
self.age++;
}, 1000);
}
共de樣品直接從MDN文章中獲取。
相關問題
- 1. matlab symfun vs匿名函數
- 2. 封閉VS匿名函數
- 3. 貓鼬傳遞類函數
- 4. 匿名函數vs命名函數哪個更好,爲什麼
- 5. 在貓鼬中組織靜態函數
- 6. 在匿名函數中調用匿名函數(初始)
- 7. AngularJS $超時通話功能VS匿名函數VS表達
- 8. onclick - 匿名函數vs定義vs html onclick
- 9. 匿名函數在陣列
- 10. array_walk匿名函數
- 11. 與匿名函數
- 12. 與匿名函數
- 13. Tcl匿名函數
- 14. JavaScript匿名函數
- 15. 在導出的貓鼬模型中使用貓鼬綱要函數
- 16. Clojure:命名匿名函數
- 17. 命名匿名函數
- 18. 匿名函數錯誤和什麼是匿名函數?
- 19. 匿名函數與非匿名函數一樣強大
- 20. 分配匿名函數分配匿名函數
- 21. 貓鼬重命名集合
- 22. 回調不是函數 - 摩卡/貓鼬
- 23. 救貓鼬()是不是一個函數
- 24. 貓鼬.save不是一個函數
- 25. 貓鼬回調函數沒有觸發
- 26. 貓鼬「this.model是不是一個函數」
- 27. 貓鼬 - 在findOne
- 28. 在貓鼬
- 29. 在貓鼬
- 30. 在貓鼬
lambda是一個匿名函數 - 一個沒有名字的函數。你的兩個例子都是lambda表達式。但是,箭頭函數具有詞彙「this'。 – naomik