Сообщение от 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();
А лучше - отказаться от такого способа объявления функций, или изменить структуру скрипта, чтобы избежать этого.