JScript - функция обертка для другой функции
Прошу прощения за возможный оффтоп, но вопрос по виндовому JScript'у
есть функция WshShell.Popup Код:
WshShell=new ActiveXObject('WScript.Shell'); <Text> - строка, текст сообщения. <SecondsToWait> - необязательный, число. Количество секунд, по истечении которого окно будет автоматически закрыто. <Title> - необязательный, строка. Текст заголовка окна сообщения. <Type> - необязательный, число. Комбинация флагов, определяет тип кнопок и значка. хочу сделать что-то типа функции-обертки, которая будет передавать параметры в WshShell.Popup() при этом нужно передать столько параметров, сколько пришло (т.к. обязательным является только первый) на сколько я понял, это делается как-то так: function foo() { bar.apply(null, arguments); } function bar(a, b, c) { // делаем здесь что-нибудь } но, как это записать в данном, конкретном случае - так и не понял.... |
pnpquest,
нужно чтобы функция передавала все переданные аргументы, их может быть от 1 до 4 т.е. вариант с заранее объявленными a,b,c - не подходит |
У меня нет под рукой венды, проверить не могу, но по идее, можно всегда использовать дефолтные значения
function foo(a,b,c){ var b = b || 1 var c = c || 1 bar(a,b,c) } |
да, спасибо, такой способ работает:
function foo(a,b,c,d){ var b = b || 0; var c = c || ''; var d = d || 0; o.wss.Popup(a,b,c,d); }; foo('text'); но для собственного развития хотелось бы еще увидеть иные варианты решения, с тем же .apply к примеру |
Цитата:
но метод работы с объектами и их прототипами - по сути тот же, что и в JS |
Цитата:
Выполни Function.prototype.apply, что он ответит интересно. Цитата:
|
Цитата:
|
Цитата:
Код:
function apply() { |
Значит как-то так должно работать
WshShell=new ActiveXObject('WScript.Shell'); function wrap(){WshShell.Popup.apply(null, arguments)} //или function wrap(){WshShell.Popup.apply(WshShell, arguments)} |
ошибка:
Цитата:
|
Часовой пояс GMT +3, время: 14:10. |