簡體   English   中英

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);
    });
  },

你可以使用Bindthis的方法中設置this值:

completeAll: function() {
  this.tasks.forEach(function(task) {
    this.completeTask(task);
  }.bind(this));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM