<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JScript: операции с областью видимости]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=16507</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=16507&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JScript: операции с областью видимости».]]></description>
		<lastBuildDate>Thu, 29 Jul 2021 07:27:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[JScript: операции с областью видимости]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=149086#p149086</link>
			<description><![CDATA[<p>Дано: <br />1) ScriptControl<br />2) Модульная загрузка кода в SC<br />3) Иерархия модулей:<br />	уровень 1. модуль парсер - базовые инструменты для всех парсеров<br />	уровень 2. модули авито, циан и т.д. - общие инструменты для работы со всеми разделами авито (дома, квартиры, земля и т.п.), циан и т.п.<br />	уровень 3. модули авитоКвартиры, авитоДома и т.д. - настройки для работы с конкретными разделами источников</p><p>Пояснение:<br />Модули уровня 3 должны получать доступ к функциям и переменным, определенным в модулях уровней 2 и 1. Модули уровня 2 должны получать функции и инструменты из модуля уровня 1.</p><p>Вопрос:<br />Как подключить область видимости модулей уровня 1 и 2 в модули уровня 3?</p><p>Дополнение:<br />В существущей реализации загрузки кода глобальная область видимости SC глючит: после некоторой загрузки кода в ней остаются только сущности описанные кодом, а результаты возвращенные конструкцией (Immediately-invoked Function Expression) отсутствуют. <br />По этой причине модули организованы как функции (области видимости функций работают корректно):<br />moduleN(){<br />	privateFunctionN()<br />	return {<br />		publicFunctionN()<br />	}<br />}<br />Т.е. доступ к функциям модуля осуществляется functionToUseInModuleLevel3 = moduleN().publicFunctionN<br />При этом возникают понятные неудобства.<br />Насколько я понимаю, .bind, .call и .apply в MS JScript отсутствуют. Или неясно как их применять.<br />Как еще можно решить задачу подключения областей видимости функций?</p>]]></description>
			<author><![CDATA[null@example.com (expertykt)]]></author>
			<pubDate>Thu, 29 Jul 2021 07:27:07 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=149086#p149086</guid>
		</item>
	</channel>
</rss>
