在阅读了有关模块模式的一些内容后,我看到了一些返回您想要公开的属性的方法。
最常见的方法之一是在“return”语句中声明您的公共属性和方法,除了您的私有属性和方法。类似的方式(“Revealing”模式)是提供对您想要公开的属性和方法的简单引用。最后,我看到的第三种技术是在模块函数中创建一个新对象,在返回该对象之前为其分配新属性。这是一个有趣的想法,但需要创建一个新对象。
所以我在想,为什么不直接使用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;
})();
使用上述方法有什么优点/缺点吗?其他人呢?