簡體   English   中英

Javascript - 如何在同一個類中的另一個方法中調用一個方法

[英]Javascript - How to call a method in another method within the same class

如何在javascript中的同一類中的另一個方法中調用方法。 我試過調用它

this.save(books);

像這樣。 但我收到一個錯誤:

未捕獲的類型錯誤:this.save 不是函數

有什么建議

class Book {
  constructor(title, author, isbn) {
    this.title = title;
    this.author = author;
    this.isbn = isbn;
  }

  static getBooks() {
    const books = localStorage.getItem('books');
    return books === null ? [] : JSON.parse(books);
  }

  static displayBooks() {
    const books = Book.getBooks();
    books.forEach((book) => {
      const ui = new UI();
      ui.addBookToList(book);
    });
  }

  static addBook(book) {
    console.log(this);
    const books = Book.getBooks();
    books.push(book);
    this.save(books);
  }

  static removeBook(isbn) {
    const books = Book.getBooks(),
      bookIndex = books.findIndex((book) => book.isbn === isbn);
    books.splice(bookIndex, 1);
    this.save(books);
  }

  save(books) {
    localStorage.setItem('books', JSON.stringify(books));
  }
}

靜態方法是在類本身上調用的,而不是類的實例,要么使save方法為靜態,要么使caller方法為非靜態。

參考: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/static

暫無
暫無

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

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