由于角度工厂,我正在考虑使用一个类,它使用一些关闭它的方法,就像它们是私有方法一样。
这不是100%的经典继承,也不是揭示模式,所以我不确定这是否正确。这是一个小例子:
myClass = (function() {
function privateMethod (stuff) { return something }
function TheClass () { this.someValue = 'Hello'}
TheClass.prototype.someMethod = function () { return privateMethod(this.someValue)}
return TheClass
}());
然后执行类似
的操作instance = new myClass()
我认为这适用于不改变实例化对象值的辅助函数或私有方法。使用私有"变量"可能对singelton类或固定值有用。
这个实现有问题吗?
答案 0 :(得分:0)
这通常很好,大多数课程取决于他们的关闭。通常你的类将在它自己的文件中 - 它自己的模块。如果您正在使用模块加载器(我希望您是),那么已经隐含了闭包,并且这些方法已经是"私有"如下定义:
// Begin MyClass.js
function privateMethod (stuff) { return something }
function TheClass () { this.someValue = 'Hello'}
TheClass.prototype.someMethod = function () { return privateMethod(this.someValue)}
// depending on which module loader you are using
return TheClass;
module.exports = TheClass;
export default TheClass;