<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; JS/WSH: - собственный объект]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9530</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9530&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «JS/WSH: - собственный объект».]]></description>
		<lastBuildDate>Fri, 02 May 2014 13:54:49 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82559#p82559</link>
			<description><![CDATA[<div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Это IDispatсh не движка, а скрипта. Он уже есть под именем this. Думаю, что если вы хотите работать с самим движком, придётся вам писать свой скрипт-контрол</p></blockquote></div><p>В общем-то это и было одним из вариантов решения исходной задачи, однако видимо никаких готовых разработок в этой области нет</p><div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Если тебе, как ты говоришь, нужен ScriptControl, то:<br />1) создаёшь ScriptControl;<br />2) передаёшь в ScriptControl ссылку на него самого, при желании на WScript или глобальный объект;<br />3) загружаешь в него на исполнение остальной код.<br />Ну и что этот код сможет сотворить над собой?</p></blockquote></div><p>Видимо подобное решение останется как рабочий вариант решения задачи, поскольку хоть и не обеспечивает непосредственную модификацию исполняемого потока как объекта первого рода, но тем не менее позволяет обойтись только одной перезагрузкой JS-сценария<br />Благодаря такой схеме получается полноценная недостающая рефлексия, возможность установки языковых расширений, адекватная обработка ошибок времени исполнения и поддержка передачи событий<br />Если все перечисленное все-таки можно реализовать без создания новой инстанции ScriptControl, было бы еще лучше - а так задача решена, но только наполовину</p><div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>Ну, не все читают спецификацию ECMAScript, отсюда различие интерпретаторов. И то, что реализуется в одном браузере вразрез вышеобозначенной спецификации, собственно, и порождает, как правило, кучу словесного поноса и что-то вроде node.js, который в настоящий момент и изобретается автором темы сызнова</p></blockquote></div><p>Абсолютно солидарен, именно из-за отсутствия следования спецификации EcmaScript и получаются уродцы вроде движка Gecko и недобраузера Firefox, в котором все реализовано через известное место<br />Насчет node.js знать не знаю, но это не имеет отношения к оригинальному вопросу - нужна рефлексия для JScript вне зависимости от контекстного хост-объекта, а там уже неважно, WMI ли это или node.js, или что-то еще</p><div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>Если Ваше величество снизойдет до нас, то книгам по программированию предпочитаю спецификации, отладчики и факты</p></blockquote></div><div class="quotebox"><cite>ECMAScript Specification пишет:</cite><blockquote><p>Unless otherwise specified, the standard built-in properties of the global object have attributes {[[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: true}.<br />...<br />In addition to the properties defined in this specification the global object may have additional host defined properties. This may include a property whose value is the global object itself; for example, in the HTML document object model the window property of the global object is the global object itself.</p></blockquote></div><p>Ну-ну... Согласно спецификации все свойства глобального объекта вообще не должны быть перечислимыми, однако из-за того что известные реализации имеют еще одно хост-свойство вроде window, то для удобства включен режим перечисления, а также автоматическое включение ссылок между переменными и свойствами глобального объекта<br />Ни для каких других контекстов это не работает... Так что Вы там и не ответили, какое все это имеет хотя бы малейшее отношение к рефлексии? Причем тут вообще свойства объектов, когда речь идет не о объектах или списках их свойств, а о извлечении информации об исполняемом коде и его элементах</p><div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>Загляните в тему: &quot;JScript: Создание окна, а также трансляция WScript в HTA&quot;. Грубо говоря, Вы сможете как использовать возможности HTA внутри среды WSH (независимо консольное приложение или нет), так и наоборот объект WScript в HTA.</p></blockquote></div><p>Спасибо за предложенную реализацию! Этот вариант конечно не решает задачу в исходной постановке, но позволяет достичь рефлексии в HTA-приложении, сохраняя возможность использовать WScript-объект</p>]]></description>
			<author><![CDATA[null@example.com (inter-hosting)]]></author>
			<pubDate>Fri, 02 May 2014 13:54:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82559#p82559</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82469#p82469</link>
			<description><![CDATA[<div class="quotebox"><cite>inter-hosting пишет:</cite><blockquote><p>Более того насчет интерфейса IDispath, существует такой метод <a href="http://msdn.microsoft.com/en-us/library/c5b043ew(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library … s.85).aspx</a>, вероятно его возможно применить для обозначенной цели</p></blockquote></div><p>Это IDispatсh не движка, а скрипта. Он уже есть под именем this. Думаю, что если вы хотите работать с самим движком, придётся вам писать свой скрипт-контрол.</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Wed, 30 Apr 2014 02:42:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82469#p82469</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82467#p82467</link>
			<description><![CDATA[<div class="quotebox"><cite>inter-hosting пишет:</cite><blockquote><div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Сомнительно, &lt;script id=&quot;scr1&quot; src=&quot;external.js&quot;&gt;&lt;/script&gt;ну и как получить код из external.js?</p></blockquote></div><p>Очень и очень легко - document.scripts[&quot;scr1&quot;].text</p></blockquote></div><p>На моей памяти свойства src и text были взаимоисключающими. И, хотя я сильно отстал от жизни, боюсь, что в этом отношении всё осталось очень и очень по-прежнему.</p><p>Если тебе, как ты говоришь, нужен ScriptControl, то:<br />1) создаёшь ScriptControl;<br />2) передаёшь в ScriptControl ссылку на него самого, при желании на WScript или глобальный объект;<br />3) загружаешь в него на исполнение остальной код.<br />Ну и что этот код сможет сотворить над собой?</p><div class="quotebox"><blockquote><p>Опять-таки для простоты формулировки и единообразия - заставить заработать такую вот библиотеку <a href="http://summerofgoto.com/">http://summerofgoto.com/</a> для JScript/WSH; в браузерном JavaScript она прекрасно работает</p></blockquote></div><p>И что там? Берётся код на придуманном языке &quot;jsplusgoto&quot; переводится на настоящий JS и запускается. Что с того, что он берётся из &lt;script&gt;, если у него неизвестный браузеру type. С таким же успехом он мог бы браться из комментария, любого другого невидимого элемента, из переменной, ресурса в WSF. И если в JScript есть некоторые трудности с доступом к глобальному контексту скрипта из локального, то в предложенном извращении со ScriptControl&#039;ом эта библиотека должна заработать с минимальными изменениями.</p>]]></description>
			<author><![CDATA[null@example.com (shiz)]]></author>
			<pubDate>Wed, 30 Apr 2014 01:35:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82467#p82467</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82442#p82442</link>
			<description><![CDATA[<p><strong>inter-hosting</strong>, загляните в тему: <a href="http://forum.script-coding.com/viewtopic.php?id=4196">&quot;JScript: Создание окна, а также трансляция WScript в HTA&quot;</a>. Грубо говоря, Вы сможете как использовать возможности HTA внутри среды WSH (независимо консольное приложение или нет), так и наоборот объект WScript в HTA.</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Tue, 29 Apr 2014 19:58:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82442#p82442</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82430#p82430</link>
			<description><![CDATA[<div class="quotebox"><cite>inter-hosting пишет:</cite><blockquote><p>Что может быть хуже, когда на глубокий вопрос отвечают сказками на уровне учебника для чайников, да и к тому же неправильно</p></blockquote></div><p>Да, да! Вы верно задали мерило по себе, - ECMAScript в помощь.<br /></p><div class="quotebox"><cite>inter-hosting пишет:</cite><blockquote><p>Ничего подобного! Мало того что это не имеет отношения к поставленной задачи, к тому же это не совсем правда и зависит от реализации JS-интерпретатора<br />В некоторых реализациях Gecko обращение к конструкции this.variable снимает DontDelete-флаг ассоццированной var-переменной</p></blockquote></div><p>Ну, не все читают спецификацию ECMAScript, отсюда различие интерпретаторов. И то, что реализуется в одном браузере вразрез вышеобозначенной спецификации, собственно, и порождает, как правило, кучу словесного поноса и что-то вроде node.js, который в настоящий момент и изобретается автором темы сызнова.<br /></p><div class="quotebox"><cite>inter-hosting пишет:</cite><blockquote><p>Ясно что конечная цель это не использование такой библиотеки, но такой пример сразу отметает оффтопик про ассоциативные массивы и свойства объектов</p></blockquote></div><p>Прямо-таки плевок эстета. Просветите нас, что такое объект в JavaScript, приведите примеры того, как Вы видите рифлексию и то, что именно Вы под ней разумеете, да и вообще - напишите толково о самой сути и философии JavaScript, раз Вы любите бросаться инсинуациями, мол, кругом быдлокнижные дураки, один я умный. Если Ваше величество снизойдет до нас, то книгам по программированию предпочитаю спецификации, отладчики и факты. Последних от Вас не было.</p>]]></description>
			<author><![CDATA[null@example.com (greg zakharov)]]></author>
			<pubDate>Tue, 29 Apr 2014 15:35:07 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82430#p82430</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82428#p82428</link>
			<description><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p><strong>inter-hosting</strong>, ну Вам, например, среда HTA нравится? Ничто не мешает, запустить HTA, запустить скрипт на WSH, а их заставить обмениваться данными через &quot;Обмен данными между скрипт-процессами&quot; (решение на форуме есть). Причем в HTA вы запросто можете &quot;экспортировать&quot; объект WScript.</p></blockquote></div><p>Спасибо большое, что отвечается по существу! (Что может быть хуже, когда на глубокий вопрос отвечают сказками на уровне учебника для чайников, да и к тому же неправильно <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Среда HTA она просто великолепна, и действительно там поставленная задача решается в два счета, да и объект WScript действительно как оказывается не сложно экспортировать, НО:<br />Интересно решение именно для чистого консольного JScript/WSH, чтобы в нем можно было сделать то же самое, что и в браузерном интерпрераторе<br />Опять-таки для простоты формулировки и единообразия - заставить заработать такую вот библиотеку <a href="http://summerofgoto.com/">http://summerofgoto.com/</a> для JScript/WSH; в браузерном JavaScript она прекрасно работает<br />Ясно что конечная цель это не использование такой библиотеки, но такой пример сразу отметает оффтопик про ассоциативные массивы и свойства объектов <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Как еще один хороший вариает формулировки - получить возможность считывать JOB-элементы из WSF-файла, а также генерировать и удалять их в процессе выполнения WSF-пакета, как минимум - получить идентификатор текущей JOB-задачи</p><p>Заранее спасибо</p>]]></description>
			<author><![CDATA[null@example.com (inter-hosting)]]></author>
			<pubDate>Tue, 29 Apr 2014 13:53:08 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82428#p82428</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82424#p82424</link>
			<description><![CDATA[<div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>Какбэ... для примера.&nbsp; &nbsp; &nbsp; .....<br />Шагаем далее.&nbsp; &nbsp; &nbsp;....</p></blockquote></div><p>Все что здесь Вами указано- это лишь констатация факта, что функции в JS являются объектами первого рода, а также то, что в глобальном пространстве объявляемые переменные автоматически связываются с хост-объектом; тот факт, что свойства без аттрибута DontEnum можно перебрать в for-in цикле, абсолютно никакого отношения к рефлексии не имеют, банальны, неинересны и неизвестны разве что новичкам</p><div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>На протяжение всей колонки Вы сами себе неоднократно противоречили, так и не сумев сформулировать четко и внятно критерии и того, что же Вам все-таки нужно</p></blockquote></div><p>Если постоянно не осуществлять изборочные цитирование фраз из контекста, то задача изначально одна и та же, и критерии четкие - рефлексия, чтение/модификация глобального кода и обработка ошибок времени исполнения в WSH/JScript, да так шоб прям:<br />* Иметь возможность посмотреть полноценный стек вызовов для текущей функции, да так чтобы как в отладчике в браузере - весь набор вышележащих функций, в том числе и анонимных, с номерами строчек и исходным кодом<br />* Иметь возможность посмотреть список *переменных* в текущем контексте (НЕТ, свойста объектов без аттрибута DontEnum не интересуют вообще)<br />* В случае WSF-файла иметь возможность определить текущую активную работу/JOB, посмотреть ее исходный код или код любой другой работы, перейти на исполнение другой работы<br />* Иметь возможность сделать аналог из браузерного JS конструкции window.onerror = function() { return true }&nbsp; &nbsp;(НЕТ, глобальный try/catch это совершенно другое, в VBScript есть аналогчная вещь, но в JScript нету)<br />* Иметь возможность сделать аналог из браузерного JS конструкции document.scripts[&quot;myscript&quot;].text = superfunction(document.scripts[&quot;myscript&quot;].text), да так чтобы состояние всех объектов программы сохранилось, но изменился исходный код следующего исполняемого участка </p><p>Считаете что нет четкой формулировки? Их можно сделать много эквивалентных, но пусть будет такая - заставить заработать такую вот библиотеку <a href="http://summerofgoto.com/">http://summerofgoto.com/</a> для JScript/WSH; в браузерном JavaScript она прекрасно работает<br />Никакие ваши свойства объектов, да и функции первого рода здесь не помогут - нужно то же, что и в оригинальной задаче</p><div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>Иными словами, определяя глобальную переменную, фактически определяется свойство глобального объекта</p></blockquote></div><p>Ничего подобного! Мало того что это не имеет отношения к поставленной задачи, к тому же это не совсем правда и зависит от реализации JS-интерпретатора<br />В некоторых реализациях Gecko обращение к конструкции this.variable снимает DontDelete-флаг ассоццированной var-переменной<br />Что интересного в том, что JScript-интерпретатор устанавливает символическую ссылку между свойствами хост-объекта и глобальной переменной, не говоря уже о том, что var myvar и GLOBAL.myvar это совершенно две разные вещи </p><div class="quotebox"><cite>YMP пишет:</cite><blockquote><p>Как именно? Допустим, получили вы указатель на объект, не поддерживающий IDispatch, в переменную (какого типа?), и каковы дальнейшие действия?</p></blockquote></div><p>Собственно в этом и состоит вопрос всей рассматриваемой темы<br />Очень приближенно схема следующая- осуществляется получение указателя на объект текущего интерпретатора, который согласно спецификации WSH/Jscript является OLE-объектом, и уж если IDispatch там не поддерживается, то с помощью библиотеки вроде DynamicWrapperX или каких-то еще внешних средств, осуществить вызов требуемых методов этого&nbsp; Scripting engine с необходимыми аргементами, вроде <a href="http://msdn.microsoft.com/en-us/library/442d1dx8(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library … s.85).aspx</a>, которые уже предоставляют настоящую информацию о рефлексии, и <a href="http://msdn.microsoft.com/en-us/library/tch4w30x(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library … s.85).aspx</a> для модифкации требуемых элементов кода в реальном времени<br />Более того насчет интерфейса IDispath, существует такой метод <a href="http://msdn.microsoft.com/en-us/library/c5b043ew(v=vs.85).aspx">http://msdn.microsoft.com/en-us/library … s.85).aspx</a>, вероятно его возможно применить для обозначенной цели</p><br /><p>Спасибо</p>]]></description>
			<author><![CDATA[null@example.com (inter-hosting)]]></author>
			<pubDate>Tue, 29 Apr 2014 13:40:17 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82424#p82424</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82421#p82421</link>
			<description><![CDATA[<p><strong>inter-hosting</strong>, ну Вам, например, среда HTA нравится? Ничто не мешает, запустить HTA, запустить скрипт на WSH, а их заставить обмениваться данными через &quot;Обмен данными между скрипт-процессами&quot; (решение на форуме есть). Причем в HTA вы запросто можете &quot;экспортировать&quot; объект WScript.</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Tue, 29 Apr 2014 13:09:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82421#p82421</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82418#p82418</link>
			<description><![CDATA[<p><strong>inter-hosting</strong>, уважаемый, на протяжение всей колонки Вы сами себе неоднократно противоречили, так и не сумев сформулировать четко и внятно критерии и того, что же Вам все-таки нужно: REPL или же клон node.js?<br /></p><div class="quotebox"><cite>inter-hosting пишет:</cite><blockquote><p>Задача состоит в полноценной рефлексии для JS-определенного кода в текущем сценарии...</p></blockquote></div><p>Какбэ... для примера. Функции в JavaScript - это объекты, свойства которых можно перебирать в цикле примерно так:<br /></p><div class="codebox"><pre><code>for (var i in func) {
   alert(i + &#039;: &#039; + func[i]);
}</code></pre></div><p>На месте func может быть и объект, потому, как говорилось ранее, что функции в JavaScript являются объектами. Объекты же в свою очередь представляют собой хэш-таблицы или, если хотите, ассоциативный массив. Значениями последней(его) могут быть данные простых типов или другие объекты - в обоих случаях они будут именоваться свойствами; помимо значений объект может содержать функции, именуемые методами. Собственно, на этом введение в рефлексию JavaScript можно считать оконченной.<br />Шагаем далее.<br />Одним из первых действий, выполняемых любым интерпретатором JavaScript перед исполнением кода - создание глобального объекта, свойства которого представляют собой глобальные переменные сценария JavaScript. Иными словами, определяя глобальную переменную, фактически определяется свойство глобального объекта. О прочих нюансах, пожалуй, говорить пока смысла нет, но вся эта информация по крайней мере должна стать (для того, у кого все же голова там, где ей положено быть) поводом к размышлению.</p>]]></description>
			<author><![CDATA[null@example.com (greg zakharov)]]></author>
			<pubDate>Tue, 29 Apr 2014 10:27:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82418#p82418</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82412#p82412</link>
			<description><![CDATA[<div class="quotebox"><cite>inter-hosting пишет:</cite><blockquote><p>Если получить подобный объект, то в дальнейшем с ним довольно легко работать</p></blockquote></div><p>Как именно? Допустим, получили вы указатель на объект, не поддерживающий IDispatch, в переменную (какого типа?), и каковы дальнейшие действия?</p>]]></description>
			<author><![CDATA[null@example.com (YMP)]]></author>
			<pubDate>Tue, 29 Apr 2014 09:21:13 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82412#p82412</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82409#p82409</link>
			<description><![CDATA[<div class="quotebox"><cite>JSman пишет:</cite><blockquote><p><strong>inter-hosting</strong>, я думаю, что проще рассказать что Вы хотите получить в итоге. Модификация кода в режиме реального времени?</p></blockquote></div><p>Задача состоит в полноценной рефлексии для JS-определенного кода в текущем сценарии, а также возможности просмотра и модификации глобального пространства сценария в режиме исполнения<br />Как гипотетический пример - возможность реализации подобной штуки <a href="http://summerofgoto.com/">http://summerofgoto.com/</a> на JScript/WSH</p><div class="quotebox"><cite>JSman пишет:</cite><blockquote><p>Просто конечная цель непонятна, да и начальные условия</p></blockquote></div><p>Конечная цель - получить те же средства управления JS-интерпретатором, как и в браузерной версии - как вариант, та же установка window.onerror недоступна в JScript/WSH, однако благодаря рефлексии будет легко сделать и подобную реализацию<br />Более того в JScript/WSH не хватает инкрементальной загрузки кода, или возможности обращения к произвольному JOB-элементу в WSF-файле</p><div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>Сомнительно, &lt;script id=&quot;scr1&quot; src=&quot;external.js&quot;&gt;&lt;/script&gt;ну и как получить код из external.js?</p></blockquote></div><p>Очень и очень легко - document.scripts[&quot;scr1&quot;].text</p><div class="quotebox"><cite>shiz пишет:</cite><blockquote><p>В WSH для доступа к исходному коду исполняемого скрипта надо очевидно прочесть содержимое файла с этим кодом:</p></blockquote></div><p>Спасибо за уделенное внимание, но к сожалению, это совершенно другое и не имеющее отношение к постановке задачи<br />Разница примерно такая же, как исходный текст в HTML-файле и текущая разметка в режиме реального времени из document.body.innerHTML, которая в общем случае может уже не содержать ни одного элемента из исходного варианта<br />То же самое требуется и для JScript/WSH- возможность модифицировать JS-код глобальной области в реальном времени, и потом получить его содержание - примерно как в отладчике</p><p>===<br />Важно и если вернуться к ранее описанному моменту: </p><div class="quotebox"><blockquote><p>Навряд ли что-то подобное можно извлечь из WScript. Да если бы и извлекли, что с ним делать? Не всякий COM-объект можно использовать в скриптовом коде, а только поддерживающий интерфейс IDispatch</p></blockquote></div><p>Если получить подобный объект, то в дальнейшем с ним довольно легко работать <a href="http://msdn.microsoft.com/en-us/library/t9d4xf28(VS.85).aspx">http://msdn.microsoft.com/en-us/library … S.85).aspx</a>, и как видно выше, интерфейс WSH поддерживает COM-инфраструктуру, в частности можно получить объект <strong>Scripting engine</strong> (The OLE object that processes scripts. A scripting engine implements the IActiveScript and, optionally, IActiveScriptParse interfaces. )</p><p><strong>Таким образом результирующая задача - COM-получить объект&nbsp; <em>Scripting engine</em> для текущей инстанции исполняемого JScript-сценария из самого этого сценария</strong></p>]]></description>
			<author><![CDATA[null@example.com (inter-hosting)]]></author>
			<pubDate>Tue, 29 Apr 2014 08:12:58 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82409#p82409</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82362#p82362</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>присвойте старой функции новое значение</p></blockquote></div><p>Зачем? надо просто вызвать другую. </p><div class="quotebox"><blockquote><p>конечная цель непонятна, да и начальные условия. Может оно Вам и не надо</p></blockquote></div><p>Полностью согласен.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 27 Apr 2014 19:03:21 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82362#p82362</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82337#p82337</link>
			<description><![CDATA[<p><strong>inter-hosting</strong>, я думаю, что проще рассказать что Вы хотите получить в итоге. Модификация кода в режиме реального времени? Нет проблем, присвойте старой функции новое значение. Перебор глобальных функций и переменных делайте через f in this. Таким образом Вы можете узнать текущее значение переменных. Просто конечная цель непонятна, да и начальные условия. Может оно Вам и не надо:)</p>]]></description>
			<author><![CDATA[null@example.com (JSmаn)]]></author>
			<pubDate>Sun, 27 Apr 2014 11:28:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82337#p82337</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82259#p82259</link>
			<description><![CDATA[<div class="quotebox"><cite>inter-hosting пишет:</cite><blockquote><p>В классическом браузерном JavaScript можно использовать вариант document.scripts, который позволяет как получать доступ к исходному коду исполняемого JS-скрипта</p></blockquote></div><p>Сомнительно,<br /></p><div class="codebox"><pre><code>&lt;script id=&quot;scr1&quot; src=&quot;external.js&quot;&gt;&lt;/script&gt;</code></pre></div><p>ну и как получить код из external.js?</p><p>В WSH для доступа к исходному коду исполняемого скрипта надо очевидно прочесть содержимое файла с этим кодом:<br /></p><div class="codebox"><pre><code>source_code = FSO.OpenTextFile(WScript.ScriptFullName).ReadAll();</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (shiz)]]></author>
			<pubDate>Thu, 24 Apr 2014 17:26:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82259#p82259</guid>
		</item>
		<item>
			<title><![CDATA[Re: JS/WSH: - собственный объект]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=82256#p82256</link>
			<description><![CDATA[<p>Оригинальная вряд ли. <br />Один решает так - <a href="http://forum.script-coding.com/viewtopic.php?id=7252">JScriptInclude Gear - Механизм каскадного импорта скриптов/библиотек</a><br />Другой эдак - <a href="http://forum.script-coding.com/viewtopic.php?id=7766">JScript/VBScript: WSH интерпретатор</a></p><div class="quotebox"><blockquote><p>вариант document.scripts</p></blockquote></div><p>Это коллекция всех тегов &lt;SCRIPT&gt; со страницы браузера. Примерно то же самое что и document.getElementsByTagName(&#039;script&#039;). </p><p>И потом. Что значит следующая фраза?<br /></p><div class="quotebox"><blockquote><p>получать и задавать исходный исполняемый код для текущего JScript-сценария</p></blockquote></div><p>Если кто-то изменит код текущего сценария это будет другой сценарий. </p><p>И на последок. <br /></p><div class="codebox"><pre><code>
function alert(msg)
{
    WScript.Echo(msg);
};

alert(alert);
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 24 Apr 2014 15:48:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=82256#p82256</guid>
		</item>
	</channel>
</rss>
