在我的公司我们有一个调查框架来帮助利益相关者创建调查,我试图创建一个可重复使用的对象,这将允许团队成员轻松设置调查的特定问题的宽度 - 他们有时可以根据答案的长度有点缩小。我试图使用模块和构造函数模式的组合,但不知道如果我正确地将它关闭。有没有更好的方式来编写我的代码?如何在JavaScript中正确使用模块模式?
var WidthIncreaser = (function(){
return function (element, words, width) {
var element = $(element);
var re = new RegExp(words, 'gi');
return {
init: function() {
if (element.text().match(re)) {
element.width(width);
}
}
};
};
})();
var tr = new WidthIncreaser('td.choicev-question:first', 'Applicable from the', 400);
tr.init();
的想法是,有人可以创造WidthIncreaser的新实例,并传递一个元素,它所以它被瞄准正确的问题和大小来设置问题的宽度相匹配的问题的文本字符串。
感谢您提前的建议!
我不明白你为什么要用这种方法保护'element'。设置'this.element = $(element)'更好的主意。简单得多。 –
所有的问题都是关于“保护”的,所以这就是为什么。当然,你总是可以覆盖公共方法来提供不同的东西,但是你不能直接访问变量。我个人比较喜欢使用现代浏览器,可以让您在使用ES5时获得更多的灵活性。否则就没有必要采取这种方法,公共财产也没有问题。 – ZER0