javascript - 这是显示消息的良好实践对象吗?

标签 javascript

它有效,我已经测试过了。我想知道的是 - 这是好习惯吗?显然我可以只使用关联数组并调用它。但是我想把它封装成一个有状态的对象。

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/

相关文章:

javascript - QuickTime 插件无法播放 M4A(Apple 无损音频)文件

javascript - 在 Chrome 中 Play Framework 2.1 websockets

javascript - 如何将 Bootstrap 模式窗口与 angularjs 一起使用?

javascript - jQuery/Javascript 确认出现两次

javascript - 从 <a> 中删除点击事件处理程序

javascript - 弹出窗口 react 不够灵敏

javascript - 未捕获的类型错误 : this. props.onDelete 不是函数 reactjs

javascript - 如何在 Canvas 文本中实现此文本阴影

javascript - 在 componentDidMount() 中使用 React.setState 来获取嵌套 Promise 中返回的数据?

javascript - CKeditor insertHtml/insertElement IE8问题