Простой ответ: вы не можете сделать как. Вы можете создать методы "private"
или "static"
, но вы не можете создать Частные статические функции как на других языках.
, как вы можете эмулировать конфиденциальность закрытия:
function f() {
function inner(){}
return {
publicFn: function() {},
publicFn2: function() {}
}
}
Вот из-за закрытия, функция inner
будет создана каждый раз, когда вы называете f
, и общественные функции могут Acces этой inner
функции , но для внешнего мира inner
будет скрыто.
Способ создание статических методов объект проста:
function f() {}
f.staticVar = 5;
f.staticFn = function() {};
// or
f.prototype.staticFn = function() {};
Здесь функция объект f
будет иметь только один staticFn
, который имеет доступ к статическим переменным, но ничего из экземпляров.
Обратите внимание, что версия prototype
будет наследоваться, а первая не будет.
Таким образом, вы либо делаете частный метод, который не имеет доступа к чему-либо из экземпляров, либо вы создаете статический метод, с которым вы не пытаетесь получить доступ извне.
вы хотите ** статическая функция или статический метод **? вы хотите, чтобы он был статичным вообще? (пример не уточняется) – galambalazs
В чем разница между статическим методом и функцией? : S (btw извините за использование обоих слов) – user