У меня код, написанный по первому варианту
Alex Ander, не даёт нужный результат.
Код, который не связывает имена с пространством имён/**
* @namespace ZZZ
*/
(function() {
/** @lends ZZZ */
/**
* my function.
*/
function f() {
}
/**
* my variable.
*/
var x = 2;
})();
Вот моё предложение:
/**
* @namespace ZZZ
*/
(/** @lends ZZZ */function() {
/**
* my function.
*/
function f() {
}
/**
* my variable.
*/
var x = 2;
})();
Этот код добавляет имена с атрибутом inner (т.е. ZZZ~f, ZZZ~x), причём явное указание static или instance не менияет этого, разве что только явно не указан memberof, как во втором примере
Alex Ander.
В целом, lends непосредственно перед функцией function() {} добавляет все имена на верхнем синтаксическом уровне в модуль/класс/неймспейс с атрибутом inner.