У меня есть сценарий Js, который декларирует пространство имен, то есть метод, называемый run()
, который я могу назвать внутри сценария XUL как myNamespace.run()
:ООП, частные функции внутри метода верхнего уровня пространства имен
var myNamespace = {
run: function() {
var selectedText = getSelText();
alert (selectedText);
var getSelText = function() {
var focusedWindow = document.commandDispatcher.focusedWindow;
var selText = focusedWindow.getSelection();
return selText.toString();
}
}
}
Я хочу, чтобы иметь возможность позвонить getSelText()
внутри myNamespace.run()
, не требуя объявить getSelText()
как еще одну функцию верхнего уровня от myNamespace
. Вместо этого он должен быть как частный метод внутри myNamespace.run()
.
Когда я запускаю этот скрипт я получаю сообщение об ошибке:
getSelText
is not a function.
Я довольно новыми для JavaScript, так что я не знаю, лучший способ проектирования этого. Возможно ли добиться того, что я пытаюсь сделать? Неужели я ошибаюсь?
Цените любую помощь!
благодарит за информацию! Также выяснилось, что я могу объявлять функции без оператора var и вызывать их внутри run() – bobbyrne01
один маленький nitpick, переменные поднимаются вверх, но инициализации нет. 'b'' undefined' в вашем примере, если «другой материал» обращается к нему. Тогда он установлен на '23'. Вы правы, что операторы функций будут работать, если они используются до их создания (в области.) –
Спасибо! Я исправил свой ответ. – FishBasketGordo