Чтобы ваша функция exitButton.onclick
имела доступ к переменным, которые вы создали в охватывающей функции initInterface
, вы хотите создать замыкание в функции exitButton.onclick
, возвращая функцию, которая выполняет желаемое действие, и передавая ейпеременная.
exitButton.onclick = function () {
return (function() {
document.body.removeChild(mainPane);
})(mainPane);
};
Узнайте больше о том, как работают затворы здесь и здесь и посмотрите работающую примерную скрипку .
В качестве альтернативы, вы забываете о замыканиях и переходите вверх по DOM от кнопки, которая вызывает событие к вашему mainPane
exitButton.onclick = function() {
// in here "this" is the object that triggered the event, exitButton
document.body.removeChild(this.parentNode);
}
Кроме того, window.prototype
не существует, если вы делаете это вбраузер;window
- это объект в верхней части цепочки прототипов в сценариях браузера.Вы хотите просто window.initInterface = function () {}
, что точно так же, как function initInterface() {}
, потому что все, что вы делаете в javascript в браузере, становится свойством window
.