Javascript 在静态方法之间共享代码
是否可以在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
// 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。@埃尔克兰斯:请用代码示例给出一个答案。这很有意义。非常感谢。