Я заметил, что в разных примерах кода в Интернете есть две разные формы замыкания, но я не смог найти ничего, что определяло бы разницу (если таковая имеется) между ними.
var module = (function() { ... })()
и
var module = (function() { ... }())
Они оба кажутся функционально эквивалентными в примере ниже, но я, кажется, припоминаю, что когда-то различие было важным (код работал с одной формой, но не с другой).
var sdk =(function(){
var privacy='illusion';
return (
{
getPrivacy: function(){return privacy;}
});
})()
console.log(sdk.getPrivacy());
похоже на тот фрагмент кода, где предпоследняя строка заменена на }())
То же самое кажется верным, если я передаю объект модуля, чтобы связать общедоступные свойства/методы с:
var sdk =(function($){
var privacy='illusion';
$.getPrivacy = function() { return privacy;}
return($);
})(sdk=sdk||{})
console.log(sdk.getPrivacy());
или его аналог, оканчивающийся на }(sdk=sdk||{}))
var module = function() { ... }()
. В этом случае вам не нужны дополнительные скобки. - person dfsq   schedule 20.05.2015return (¶ {
- ужас. - person Bergi   schedule 20.05.2015