Предположим, что у меня есть такие функции, как:
function foo() {
}
function bar() {
}
Я могу написать выше как обозначение Object Literal:
var Baz = {
foo: function() {
},
bar: function() {
}
};
Насколько я понимаю в последнем случае, экземпляр Baz будет создан, когда script загружается независимо от того, когда какая-либо функция Baz когда-либо вызывается. В первом случае объект функции создается только при вызове этой функции. Правильно ли я отношусь к этим предположениям?
Если я прав, то первый будет иметь более высокую производительность (меньше памяти), чем более поздняя в приложении, где эти функции редко вызываются. Но преимущество более позднего заключается в том, что он дает большую модульность и более низкое глобальное загрязнение пространства имен.
Как вы относитесь к этому из своего профессионального опыта? Есть ли разница в скорости?