Я пытаюсь лучше понять пространство имен в javascript и нашел пример javascript Немедленно вызывается выражение функции, которое принимает объект окна в качестве параметра. Вот код из него:Передача объекта window в пространство имен Javascript
var CG = CG || {};
CG.main = (function(window) {
var FOCAL_LENGTH = 8.0;
var context, width, height, startTime;
var init = function() {
var element = document.getElementById("canvas1");
context = element.getContext("2d");
width = element.width;
height = element.height;
startTime = (new Date()).getTime()/1000.0;
tick();
}
var original_onload = window.onload || function() {};
window.onload = function() {
original_onload();
CG.main.init();
}
return {
init: init,
draw: draw_shape,
clear: clear_canvas
};
}(window));
В конце определения пространства имен, есть строка с окном в скобках, которые я запутался, функциональность. Я думаю, что цель добавления параметра окна в конец определения - связать глобальную переменную окна с пространством имен, которое затем добавит в окно разные свойства, но я не могу быть уверен.
В другом примере есть случайное имя переменной передается в определение пространства имен, и в конце определения пространства имен, фактическое имя пространства имен передается в качестве параметра:
var namespace = namespace || {};
// here a namespace object is passed as a function
// parameter, where we assign public methods and
// properties to it
(function(o){
o.foo = "foo";
o.bar = function(){
return "bar";
};
})(namespace);
console.log(namespace);
Так здесь есть несколько вопросов:
Что такое функция передачи параметра в конце определения пространства имен?
Если моя интуиция относительно того, как все это работает неправильно, какова общая структура для создания такого пространства имен javascript?
Очевидно, что я очень новичок в этом, поэтому любая помощь будет оценена, спасибо.
Это просто объект передается в качестве параметра функции. В этом нет ничего особенного. – SLaks
С вашим вторым примером кода перепишите его как функцию, с которой вы привыкли, вместо _IIFE_. Что теперь означает скобка? –