![](/img/trans.png)
[英]Error when call a method in another method inside a Object Javascript
[英]Javascript: Call a method inside another method
我有一個簡單的應用程序,它觸發一個布爾值並將任務設置為完成:
但我希望能夠使用“全部完成”按鈕並完成每項任務。 這在這里工作正常:
completeAll: function() {
this.tasks.forEach(function(task) {
task.completed = true;
});
},
http://codepen.io/anon/pen/avzMYr
但是我不想直接設置它,而是想使用這樣調用的方法,因為我有很多其他需要分離的代碼。
completeTask: function(task) {
task.completed = true;
},
completeAll: function() {
this.tasks.forEach(function(task) {
this.completeTask(task);
});
},
但這不起作用,請看這里:
http://codepen.io/anon/pen/EVaMLJ
知道如何在completeAll方法中調用“completeTask(task)”方法嗎?
你的問題是,價值this
里面.forEach()
回調是不一樣的,因為它是什么以外。 您可以保存外值this
,然后使用該保存的版本,以獲得你想要的東西:
completeAll: function() {
var self = this;
this.tasks.forEach(function(task) {
self.completeTask(task);
});
},
你可以使用Bind在this
的方法中設置this
值:
completeAll: function() {
this.tasks.forEach(function(task) {
this.completeTask(task);
}.bind(this));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.