2013-11-29 4 views
1

В метеора server.There является объектом, как это: A.jsКак получить глобальный объект по имени объекта

 
testObject = function(){} 

и я хочу, чтобы получить testObject от testObject «s название„TestObject“

если «A.js» в клиенте. Я знаю, что могу получить объект

 
var a = window["testObject"] 

из-за окна является глобальным объектом и сохраняет все остальные глобальные объекты. , но я не знаю, как его получить на сервере. Любые предложения оценены!

+0

Узел или браузер? - Глобальный btw не Globe или globle ... –

+0

@Nate Прошу прощения за орфографические ошибки –

ответ

0

как раз код узла. использовать как этот

 
global["testObject"] 

я получаю ответ на FreeNode .thank вы @bline

1

Простой способ сохранить глобальную ссылку на область только, чтобы обернуть свой код в закрывающем IIFE, как это:

(function(namespace) { 
    console.log(namespace["testObject"]); 
}(this)); 

Это будет работать как на сервере, так и на клиенте.

+0

Отличное решение! Жаль, что Meteor (хотя я использую более старую версию) автоматически переносит все файлы в функцию IIFE. Не проблема, просто лишняя добавить, если там уже есть. – fredrikekelund

+0

Просто разместите эти файлы в файле 'client/compatible'. Затем он не будет завернут в IIFE, и он будет запущен перед другими файлами клиента. – sbking

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