Я работаю над реализацией модели Javascript в веб-приложении, над которым я работаю.Цель модели - просто хранить информацию о состоянии страницы.Я сталкивался с двумя различными реализациями для создания модели, и мне было интересно, какая из них лучше всего использовать.Первая реализация:
var PageInfo = function () {
this._info = {};
};
PageInfo.prototype = {
getInfo: function () {
return this._info;
},
setInfo: function (updatedInfo) {
this._info = updatedInfo;
}
};
Вторая реализация:
var pageInfo = function () {
var info = {};
return {
getInfo: function () {
return info;
},
setInfo: function (updatedInfo) {
info = updatedInfo;
}
}
};
Другой вопрос, который у меня возник, касается функции setInfo ().Когда я обнаруживаю, что обновляю модель, я часто хочу, чтобы информация, которую я только что изменил, была немедленно доступна мне.Это привело меня к написанию функции-установщика следующим образом:
setInfo: function(updatedInfo) {
info = updatedInfo;
return info;
}
, которую я реализую в коде так:
var info = pageInfo.setInfo(newInfo);
Это нормально, или я должен реализовывать это следующим образом?:
pageInfo.setInfo(newInfo);
var info = pageInfo.getInfo();
Просто стараюсь следовать рекомендациям и избегать проблем, которые могут возникнуть при использовании неправильной реализации.