2015-03-18 2 views
0

Я загружаю плагин Topstart bootstrap перед вызовом Typeahead в моем скрипте, но typeof Typeahead возвращает неопределенный, даже если он абсолютно загружен.Javascript typeof Typeahead возвращает undefined

Javascript строка файл 2650:

!function($){"use strict";var Typeahead=function(element,options) // ... rest of plugin 

Javascript строка файл 2765:

alert(typeof Typeahead); 

оповещение неопределенного

почему это так?

+0

, потому что 'Typeahead' является частной переменной в другой функции ... – dandavis

ответ

0

Вы действительно недостаточно показываете нам код. Но, если:

alert(typeof Typeahead); 

находится вне функционального блока, где появляется var Typeahead = function() {...}, то вы находитесь за пределами сферы, где эта переменная (и, следовательно, функция) определяется таким образом, переменная будет undefined. Переменные видимы только в пределах области, в которой они определены.

Если вы хотите, чтобы var Typeahead был доступен вне этого функционального блока, он должен быть объявлен в более высокой области.

В качестве примера:

function foo() { 
    // define local variable only visible within function foo 
    var greeting = "Hi"; 
} 

console.log(typeof greeting); // will show "undefined" 

// define higher scope variable visible in foo and outside of foo 
var greeting = "Hi"; 

function foo() { 
    console.log(greeting);  // will show "Hi" 
} 

console.log(greeting);   // will show "Hi" 
+0

машинописный загружается в глобальной области видимости и предупреждения (TypeOf машинописный) загружается в пределах $ (document) .ready (function() {}); –

+0

@VinceKronlein - ваш код показывает 'Typeahead' определяется внутри функции'! Function ($) {...}() '. Это НЕ глобальная область. Это внутри области функций. Если вам нужна более подробная справка, вы увидите достаточно кода, чтобы показать весь объем обоих соответствующих фрагментов кода, потому что этот вопрос полностью касается области, но вы сократили свой код, поэтому нам трудно точно знать, что за рамки факт, что 'Typeahead' определен внутри функции. – jfriend00

Смежные вопросы