取决于其封闭的类

时间:2015-10-30 17:23:14

标签: javascript

由于角度工厂,我正在考虑使用一个类,它使用一些关闭它的方法,就像它们是私有方法一样。

这不是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类或固定值有用。

这个实现有问题吗?

1 个答案:

答案 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;