我正在學習 JavaScript,為了提高我對語言的了解,我一直在嘗試了解這個待辦事項列表應用程序的工作原理。源代碼可在此處獲得??偟膩碚f,我覺得我對代碼的理解相當好。只有一件事困擾著我:在第 43 行,在“App”對象的“init”方法中,發(fā)生了以下情況:this.todos = util.store('todos-jquery');為了給你上下文,這里是“App”對象和“init”方法的開始:var App = { init: function () { this.todos = util.store('todos-jquery'); // <= this line this.todoTemplate = Handlebars.compile($('#todo-template').html()); this.footerTemplate = Handlebars.compile($('#footer-template').html()); this.bindEvents(); ... }, ...}我不明白的是,你為什么要通過在“init”方法中使用“this.todos”來定義“todos”,而不是像我下面那樣將它直接放入“App”對象中:var App = { todos: util.store('todos-jquery'), // <= this line init: function () { this.todoTemplate = Handlebars.compile($('#todo-template').html()); this.footerTemplate = Handlebars.compile($('#footer-template').html()); this.bindEvents(); ... }...}我一直在閱讀 MDN 網(wǎng)絡文檔和其他文章(例如這篇文章)中的“this”關鍵字,試圖自己回答這個問題,但不知何故,我覺得沒有一個例子真正符合我上面描述的情況。所以我得到了源代碼并嘗試查看在進行上述更改后應用程序是否仍然有效。它確實如此。我現(xiàn)在假設這兩種方法是等效的:使用一種方法而不是另一種方法有什么好處嗎?還是僅取決于每個開發(fā)人員的編程風格?
在 JavaScript 的對象方法中使用“this”
慕哥6287543
2022-07-15 09:31:20