通过导入类方法创建模块化javascript库而不需要整个类

通过导入类方法创建模块化javascript库而不需要整个类,javascript,Javascript,我正在尝试创建一个可重用的javascript库,例如books类,并拥有createbook、checkforbook和ModifyBook方法 我想这样使用它 import Library, {checkForBook, modifyBook} from 'books' Library.createBook({ name : 'firstbook', year: 2012 }) checkForBook('firstBook') modifyBook('firstBook',{

我正在尝试创建一个可重用的javascript库,例如books类,并拥有createbook、checkforbook和ModifyBook方法

我想这样使用它

import Library, {checkForBook, modifyBook} from 'books'


Library.createBook({
 name : 'firstbook',
 year: 2012
})


checkForBook('firstBook')

modifyBook('firstBook',{
  name: 'secondBook'
})

我现在的问题是:如何做到这一点而不需要使用新的keywrod,以及如何使用不需要像Library.checkForBook那样的方法
并且仍然可以访问图书列表

我想你正在寻找

// library.js
export default class Library {
    …
}


添加您的图书脚本和当前面临的问题。这里有一个类似的问题,你能发布你的
书籍
模块源代码吗?你是说它包含一个
// books.js
import Library from './library';

// creates a singleton:
export default const books = new Library();

export function checkForBook(name) {
    return books.checkForBook(name);
}
export function modifyBook(name, value) {
    return books.modifyBook(name, value);
}
// main.js
// imports the singleton, not the `Library` class
import books, {checkForBook, modifyBook} from 'books';

books.createBook({
 name : 'firstbook',
 year: 2012
});

checkForBook('firstBook');

modifyBook('firstBook', {
  name: 'secondBook'
});
  const books = new Map(); // store the books somehow

  export function createBook({ name, year }) { // make them available as import { createBook } from ...
    const book = { name, year };
    books.set(name, book);
    return book;
  }

  export function checkForBook(name) {
    return books.has(name);
  }

  export function modifyBook(name, update) {
    if(!checkForBook(name))
      throw new Error("Cannot modify, book doesnt exist");
    Object.assign(books.get(name), update);
  }

  export default { // make them available as Library.createBook
    createBook,
    checkForBook,
    modifyBook
  };