如何在JavaScript中使用静态方法的私有成员?

时间:2012-11-19 09:37:15

标签: javascript oop

我想在JavaScript中使用公共静态方法中的私有(静态)方法。我正在研究这个解决方案:

function Calc() {
    var DoSmth = function (test) {
        return test + 1;
    }
}

Calc.Stat = function (x) {
    return DoSmth(x);
}

但它不起作用。我该怎么办?

3 个答案:

答案 0 :(得分:2)

var Calc = (function() {
    var DoSmth = function (test) {
        return test + 1;
    };

    var klass = function() {

    };

    klass.Stat = function (x) {
        return DoSmth(x);
    };

    return klass;
})();

答案 1 :(得分:0)

您可以使用模块模式执行此操作:

var Calc = (function() {
  var run = function() { ... },
      stat = function() { return run(); };
  return { stat: stat };
}());

Calc.stat();

答案 2 :(得分:0)

在JS中执行私有函数的最简单方法是用另一个函数包装它。我建议这样的事情:

var Calc = (function() {
    var DoSmth = function (test) {
        return test + 1;
    };

    var result = function() {

    };

    result.Stat = function (x) {
        return DoSmth(x);
    }

    return result;
}());