(function(window){
var helloSpeaker = new Object ();
var speakWord = "Hello";
helloSpeaker.speak = function (name) {
console.log(speakWord + " " + name);
}
window.helloSpeaker = helloSpeaker;
})(window);
Из приведенного выше фрагмента я понимаю, что это выражение функции, вызываемого немедленно (IIFE), основной целью которого является защита закрытой переменной 'speakWord'. Я также удивлен, что нам нужно выставить объект 'helloSpeaker' в область окна, что является причиной для window.helloSpeaker = helloSpeaker;
. Однако я, кажется, не понимаю, почему мы должны передавать окно в качестве аргумента функции, прекрасно зная, что она все еще находится в среде окна, где вызывается функция. Пожалуйста, зачем мне передавать окно в функцию?