0

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

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

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

但它不会工作。我该怎么做这样的事情?

4

3 回答 3

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

    var klass = function() {

    };

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

    return klass;
})();
于 2012-11-19T09:45:15.413 回答
0

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

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

Calc.stat();
于 2012-11-19T09:42:59.803 回答
0

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

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

    var result = function() {

    };

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

    return result;
}());
于 2012-11-19T09:47:15.050 回答