首页 > 解决方案 > 有人可以帮我理解这段 JavaScript 代码吗

问题描述

此代码用于添加新书,但我不明白它是如何工作的。我看到一个变量书被使用但从未被分配。它是如何存在的?

        <script>
            const bookManager = {
                addBook: function(book){
                    if(!this.books){
                        this.books = [book];
                    } else{
                        this.books.push(book);
                    }
                }
            };
        </script>

标签: javascript

解决方案


bookManager是一个对象。addBook 是对象内部的一个方法。调用时的addBook方法是检查 bookManager 对象是否具有名为 的属性books。如果它没有,books那么它将在这一行中创建一个books属性 this.books = [book];并添加book到它。如果它具有该属性,那么它正在推动book它。这里this代表对象bookManager

const bookManager = {
  addBook: function(book) {
    if (!this.books) {
      this.books = [book];
    } else {
      this.books.push(book);
    }
  }
};

bookManager.addBook('test');
console.log(bookManager.books)


推荐阅读