Я пробовал это и, похоже, работает, однако я хочу знать, является ли он действительным кодом и будет в порядке со всеми браузерами. Я в основном хочу вызывать функцию как глобальный объект, только в том случае, если пользователь вошел в систему. Важно, чтобы созданный объект оставался в глобальной области. Так что я пробовал:Вызов функции глобально в рамках другой функции
var specialStuff; // defined globally
затем некоторые Ajax-код в "myMainObject", который вызывает this.involeSpecialStuff(); если пользователь вошел в систему:
myMainObject.prototype.invokeSpecialStuff = function(){
document.specialStuff = new specialStuff({foo:bar});
});
В центре внимания мой вопрос о «document.specialStuff» часть, и, если это правильный путь, чтобы получить доступ к глобально предопределенный пустой «specialStuff» переменная, в отличие от "specialStuff = новый specialStuff()", что приводит к "TypeError: не определено не конструктор (оценка«новый specialStuff ({Foo: бар});"
Благодаря
Что вы ожидаете 'новый specialStuff ({Foo: бар}) 'делать? Является конструктором 'specialStuff'? Почему вы пытаетесь присвоить возвращаемое значение 'new' для самого конструктора? – user2357112
Это набор функций администратора, которые обычный пользователь не должен загружать. –
Является ли specialStuff constuctor? потому что, если это не так, вы не должны использовать null. Если это конструктор, тогда вы должны иметь возможность делать «specialStuff = new specialStuff()» – qzcx