Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在静态方法之间共享代码_Javascript - Fatal编程技术网

Javascript 在静态方法之间共享代码

Javascript 在静态方法之间共享代码,javascript,Javascript,是否可以在Javascript静态方法之间共享代码,而不公开共享方法 例如: // public method Company.getByUri = function(uri) { // ... return gotCompany(data); } // public method Company.getByName = function(name) { // ... return gotCompany(data); } // Should be a private meth

是否可以在Javascript静态方法之间共享代码,而不公开共享方法

例如:

// public method
Company.getByUri = function(uri)
{
  // ...
  return gotCompany(data);
}

// public method
Company.getByName = function(name)
{
  // ...
  return gotCompany(data);
}

// Should be a private method, but I'm forced to keep it public
Company.gotCompany = function(data)
{
  // ...
  return new Company(data.name, data.creationDate);
}
您可以使用闭包:

var Company = (function() {
    function Company(a, b) { /* ... */ }
    Company.getByUri = function(uri) {  return gotCompany(data); }
    Company.getByName = function(name) {  return gotCompany(data); }
    function gotCompany(data) {
        return new Company(data.name, data.creationDate);
    }
    return Company;
})();
// Here `Company.getByUri` and `Company.getByName` are available,
// but not `gotCompany`

什么使公司成为私人公司?现在什么都没有。我在问如何使它私有化,并且仍然从两个公共方法调用它。不要从更广泛的意义上考虑私有、公共或静态,因为它不能很好地转换。我们所能做的就是关闭。你能做的就是把所有的东西都包装在一个IIFE中,并为你的API导出一个facade。@埃尔克兰斯:请用代码示例给出一个答案。这很有意义。非常感谢。