Показать сообщение отдельно
  #20 (permalink)  
Старый 11.04.2013, 15:29
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Сообщение от rgl
Windows Script Host - движок тот же, что у шестого IE
Но даже здесь есть проблема. Это редкий случай, но если кому-то понадобиться объявить функцию таким способом - это у него не получится. Проверялось на Vista и XP, WSH 5.7.

Простой вызов cscript z.js не вызывает проблем.
z.js
(function(that)
{
	that.a = function()
	{
		WScript.Echo(1);
	};
})(this);

a();


Этот вызов cscript z.wsf приведет к краху скрипта.
z.wsf
<?xml version="1.0" encoding="utf-8" ?>
<package>
<job id="crash">
<script language="javascript" src="z.js"></script>
</job>
</package>


Пока это единственное решение проблемы:
// вариант 1
a.call();
a.apply();

// вариант 2
b = a;
b();


А лучше - отказаться от такого способа объявления функций, или изменить структуру скрипта, чтобы избежать этого.

Последний раз редактировалось with-love-from-siberia, 11.04.2013 в 15:35.
Ответить с цитированием