Могу ли я загрузить файл javascript в контексте, отличном от "окна"?

Я пытаюсь загрузить некоторые внешние файлы .js, и у меня возникают некоторые неразрешимые конфликты пространств имен.

У меня возникла идея каким-то образом загрузить некоторые файлы в их собственном контексте, заменив " this " указанием на объект окна на некоторое пользовательское пространство имен.

пример:

first.js:

name = "first";

second.js:

name = "second";

Мне кажется, что такой трюк может быть очень полезным. Возможно ли это вообще?

EDIT
кажется, что замена « this » не решает проблему, поскольку это не контекст по умолчанию для разрешения идентификатора в javascript. это мой тестовый код:

var first = {};
var second = {};

(function(){name = "first";}).call(first);
(function(){name = "second";}).call(second);


document.write('name= '+name+' 
\n'); //prints "second" document.write('first.name= '+first.name+'
\n'); //prints "undefined" document.write('second.name= '+second.name+'
\n'); //prints "undefined

какие-нибудь идеи?

РЕШЕНИЕ
Это невозможно. Я рекомендую эти поучительные материалы для чтения всем, у кого есть подобная проблема, и кто, возможно, захочет заняться ею: http://jibbering.com/faq/notes/closures/
http://softwareas.com/cross-domain-communication-with-iframes

6
задан Brian Tompsett - 汤莱恩 8 June 2015 в 14:50
поделиться