Я узнаю о шаблоне конструктора .Как удалить функции из вывода объекта?
Чтобы осуществить то, что я учусь, я строй модели в памяти под названием Book
вдохновлен Mongoose API:
var assert = require("assert");
var Book = (function() {
var books = [];
var constructor = function(title, author, genre) {
assert.ok(title, "title cannot be undefined");
assert.ok(author, "author cannot be undefined");
assert.ok(genre, "genre cannot be undefined");
this.title = title;
this.author = author;
this.genre = genre;
this.save = function() {
books.push(this);
};
this.description = this.title + "is a " + this.genre + " by " + this.author;
};
constructor.find = function() {
return books;
};
return constructor;
}());
С помощью этой модели, я могу создать Book
экземпляров и save
их в входы магазин памяти:
var book = new Book("The Great Gatsby", "F. Scott Fitzgerald", "Novel");
book.save();
var books = Book.find();
console.log(books);
// [ { title: 'The Great Gatsby',
// author: 'F. Scott Fitzgerald',
// genre: 'Novel',
// save: [Function],
// description: 'The Great Gatsbyis a Novel by F. Scott Fitzgerald' } ]
Как удалить свойство функции «сохранить» от выхода? Я только хочу показать свойства.
Мне нужно знать, потому что я хочу отправить book
клиенту с помощью Express, и я не хочу свертывать ответ с функциями.
(я родом из C# фоне и в C#, я бы переопределить функцию в System.Object
базового класса ToString
, что функции какconsole.log
использование внутри. Я не знаю ни одного эквивалента в JavaScript.)
как вы отправляете его от экспресс-клиента? JSON? если это так, JSON удаляет функции для вас ... – dandavis