2015-04-28 3 views
1

В метеорных ЯШ:Метеор JS - Объявление функции против выражения функции в другом файле

// In: server/lib/utils.js 
    function foo() { 
     return 'bad' 
    } 

    bar = function() { 
     return 'good' 
    } 

    // In: server/server.js 
    part(of(a(larger(computation(foo()))))) 
    bar() 

Вызов результатов Foo в ошибке во время выполнения: foo is not defined.

Вызов бар нет.

Почему? Кроме того, есть ли лучший способ групповых функций, а не просто наличие файла с кучей функциональных выражений, ограниченных глобальными переменными?

ответ

1

Thats, потому что, когда вы объявляете bar = function(){}, вы делаете его глобальной функцией scoope, и именно поэтому вы можете получить доступ к любому файлу сервера js.

и function foo(){} не является глобальной функцией.

+0

Не могли бы вы объяснить, почему функция foo() {} 'не является глобальной? –

+0

@wie да, но документы говорят, что это лучше [namespacing] (http://docs.meteor.com/#/full/namespacing) – Ethaan

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