它有效,我已经测试过了。我想知道的是 - 这是好习惯吗?显然我可以只使用关联数组并调用它。但是我想把它封装成一个有状态的对象。
var View_message = function(div)
{ this.messages =
{
empty: 'Please complete all fields',
empty_bm: 'Please enter both a title and url',
name: 'Only letters or dashes for the name field',
email: 'Please enter a valid email',
same: 'Please make emails equal',
taken: 'Sorry that email is taken',
pass: 'Please enter a valid password, 6-40 characters',
validate: 'Please contact <a class="d" href="mailto:support@archemarks.com">support</a> to reset your password',
url: 'Pleae enter a valid url'
};
this.div = div;
};
View_message.prototype.display = function(type)
{
document.getElementById(this.div).innerHTML=this.messages[type];
};
obj_view = new View_message('test_id')
obj_view.display('empty');
最佳答案
您将为 View_message
的每个实例创建 this.messages
的副本。为防止出现这种情况,您可以将消息存储在原型(prototype)中。
此外,每次显示消息时,您都在查找 div。相反,我会在构造函数中存储对 div 的引用。
function View_message (div)
{
this.div = document.getElementsById(div);
}
View_message.prototype.messages = {
empty: 'Please complete all fields',
empty_bm: 'Please enter both a title and url',
name: 'Only letters or dashes for the name field',
email: 'Please enter a valid email',
same: 'Please make emails equal',
taken: 'Sorry that email is taken',
pass: 'Please enter a valid password, 6-40 characters',
validate: 'Please contact <a class="d" href="mailto:support@archemarks.com">support</a> to reset your password',
url: 'Pleae enter a valid url'
};
View_message.prototype.display = function(type)
{
this.div.innerHTML = this.messages[type];
};
关于javascript - 这是显示消息的良好实践对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8219281/