[英]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.