簡體   English   中英

從JSON數組的內容創建帶有原型函數的JavaScript對象

[英]Create JavaScript objects with prototype functions from contents of JSON array

我有一個JSON結構;

{ 
  books: [ 
    {"id": "book1", "title": "Book One"}, 
    {"id": "book2", "title": "Book Two"} 
  ] 
}

代表;

function BookList() {
    this.books = new Array();
}

BookList.prototype.addBook = function(b) {
    this.books[this.books.length] = b;
}

function Book(id, title) {
    this.id = id || '';
    this.title = title || '';
    this.chapters = new Array();
}

Book.prototype.addChapter = function(c) {
    this.chapters[this.chapters.length] = c;
}

在BookList中創建Book對象數組的最佳方法是什么?

使用jQuery,您可以僅使用$.parseJSON(jsonData).books來分配BookList數組並自動具有屬性值,但不會使用原型函數創建所需的對象。

是遍歷JSON數組並單獨創建每個Book對象的唯一方法嗎? 這個問題涉及從JSON創建特定的原型對象:將JSON字符串解析為JavaScript中的特定對象原型

我認為這可以擴展到適用於具有正確迭代級別的BookList,並從那里適用於Book對象的章節。

使用$.parseJSON初始分配后是否可以更改對象類型?

var json = { 
  books: [ 
    {"id": "book1", "title": "Book One"}, 
    {"id": "book2", "title": "Book Two"} 
  ] 
};

var list = new BookList();
list.books = json.books.map(convertToBook);

function convertToBook(book) {
  return new Book(book.id, book.title);
}

暫無
暫無

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

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