Finally Closure : Object
JavaScript
function BookStore(){
let books = [];
function add(book){
books.push(book);
}
function toViewObject(book){
return Object.freeze(book);
}
function get(){
books.map(toViewObject).slice(0);
}
return Object.freeze({
add,
get
});
}
let bookStore = BookStore();
bookStore.add({title : "JS The Good Parts"});
bookStore.add({title : "Functional-Light JS"});
bookStore.add({title : "JS Allongé "});
console.log(bookStore.get());