Javascript模块化设计模式 – 哪个更好:自调用函数或对象文字方法?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript模块化设计模式 – 哪个更好:自调用函数或对象文字方法?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1922字,纯文字阅读大概需要3分钟。
内容图文
在我编写更好,更紧凑,更安全的代码的过程中,我很高兴能在我的Javascript中采用更模块化的模式.然而,在我关于这个主题的自我教育中,我发现有不同的方法可以做到这一点.似乎最常见的两个是自调用函数模式(from this article):
var HTMLChanger = (function() {
var contents = 'contents'
var changeHTML = function() {
var element = document.getElementById('attribute-to-change');
element.innerHTML = contents;
}
return {
callChangeHTML: function() {
changeHTML();
console.log(contents);
}
};
})();
HTMLChanger.callChangeHTML(); // Outputs: 'contents'
console.log(HTMLChanger.contents); // undefined
或者,from this other article,对象文字方法模式:
var s,
NewsWidget = {
settings: {
numArticles: 5,
articleList: $("#article-list"),
moreButton: $("#more-button")
},
init: function() {
s = this.settings;
this.bindUIActions();
},
bindUIActions: function() {
s.moreButton.on("click", function() {
NewsWidget.getMoreArticles(s.numArticles);
});
},
getMoreArticles: function(numToGet) {
// $.ajax or something
// using numToGet as param
}
};
我相信其他人(在第一篇文章中描述了一些) – 哪种模式更好,和/或更常见?如果我选择默认的选择(除非我有特定的理由选择其他模式)应该是什么,为什么?
混合搭配是完全可以接受的吗?
解决方法:
我不会说一个比另一个好,但我会尽量明确每一个的优点,这样你就可以选择在你自己的情况下使用哪个.
构造函数模式使用其属性和方法创建对象,所有这些对象都是公共的.它很容易理解,您仍然可以在创建后添加功能.
自调用模式(也称为SEAF或IIFE)在开始时可能看起来更复杂,但它具有私有属性或方法的优点,因此您可以指定代码的哪个部分将公开.您也可以通过跳过return语句将其全部设为私有.
一篇让我理解JavaScript模式的精彩文章是How Good C# Habits can Encourage Bad JavaScript Habits.即使从C#到Javascript,它也适合任何使用JS的人.
作为结论,IIFE模式将为您提供您可能希望在模块中添加的所有工具,但这并不意味着在功能不太复杂的某些情况下使用构造函数模式并不方便.关于将它们混合起来,我个人不喜欢将一些模式用于一个目标的项目.使用IIFE的恕我直言更加强大和长期有用,但对于快速&有趣的游戏对象文字可能是要走的路:-)
内容总结
以上是互联网集市为您收集整理的Javascript模块化设计模式 – 哪个更好:自调用函数或对象文字方法?全部内容,希望文章能够帮你解决Javascript模块化设计模式 – 哪个更好:自调用函数或对象文字方法?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。