在了解了模块模式之后,我看到有几种返回想要公开的属性的方法。
其中最常见的一种是在"return"语句内声明您的公共属性和方法,与您的私有属性和方法分离。类似的方式(“揭示”模式)是仅提供对您希望公开的属性和方法的引用。最后,我看到的第三种技术是在您的模块函数内创建一个新对象,将您的新属性分配给该对象,然后返回该对象。这是一个有趣的想法,但需要创建一个新对象。
所以我在想,为什么不只使用this.propertyName
来分配您的公共属性和方法,最后在结尾处使用return this
?这种方式对我来说似乎更简单,因为您可以使用通常的var
或function
语法创建私有属性和方法,或者使用this.propertyName
语法声明您的公共方法。
以下是我建议的方法:
(function() {
var privateMethod = function () {
alert('This is a private method.');
}
this.publicMethod = function () {
alert('This is a public method.');
}
return this;
})();
使用上述方法有哪些优缺点?其他方法呢?