Javascript:在另一个方法中调用一个方法
我有一个简单的应用程序,可以触发布尔值并将任务设置为完成: 但我希望能够使用“全部完成”按钮,并将每个任务设置为完成。这一点很好:Javascript:在另一个方法中调用一个方法,javascript,function,vue.js,Javascript,Function,Vue.js,我有一个简单的应用程序,可以触发布尔值并将任务设置为完成: 但我希望能够使用“全部完成”按钮,并将每个任务设置为完成。这一点很好: completeAll: function() { this.tasks.forEach(function(task) { task.completed = true; }); }, 但是我不想直接设置它,而是想使用一个这样调用的方法,因为我还有很多其他代码需要分离 completeTask: function(task)
completeAll: function() {
this.tasks.forEach(function(task) {
task.completed = true;
});
},
但是我不想直接设置它,而是想使用一个这样调用的方法,因为我还有很多其他代码需要分离
completeTask: function(task) {
task.completed = true;
},
completeAll: function() {
this.tasks.forEach(function(task) {
this.completeTask(task);
});
},
但这不起作用,请参见此处:
你知道如何在completeAll方法内部调用“completeTask(task)”方法吗?你的问题是
.forEach()
回调内部的this
的值与外部的值不同。您可以保存此
的外部值,然后使用保存的版本获取所需内容:
completeAll: function() {
var self = this;
this.tasks.forEach(function(task) {
self.completeTask(task);
});
},
您可以使用Bind在如下方法中设置
this
值:
completeAll: function() {
this.tasks.forEach(function(task) {
this.completeTask(task);
}.bind(this));
}
欢迎来到JS对这是什么的解释。它并不总是这样,除非你明确地关闭它。