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, время: 06:24. |