Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Переменная. идентификатор = инициализатор. (https://javascript.ru/forum/misc/2751-peremennaya-identifikator-%3D-inicializator.html)

Дроздов 07.02.2009 20:03

отлично! спасибо огромное, очень полезная идея, но в идеале всё же не то, что хотел.
вот с этого места ...
//-> методов нет, буим создавать
//такое 

WHS.echo(Int(3.14));


и хотелось бы, чтоб работало сразу, по первому требованию и в виде Int(3,141592)
и чтоб сразу понимало Int() как "Int()"
вот вроде как в php, можно переименовать переменную или функцию, нельзя так в js сделать?

Zeroglif 07.02.2009 20:26

Цитата:

Сообщение от Дроздов (Сообщение 12258)
нельзя так в js сделать?

неа :(

Дроздов 07.02.2009 20:52

да я уже понял.
а имя переменной как-то можно в виде строки получить?
т.е. функция получает переменную уже после var a; и чтоб как-то возвратить инициализатор в строку "a"?

Zeroglif 07.02.2009 21:43

Неа 2. Переменная держит значение и фсё, значениям нет дела до имени. Можно в обратном направлении двигаться, от строки к переменной, скобки помогут - var a = 'hello'; window[a] = 'world'; или eval('a') строки, если очень нужно.

with-love-from-siberia 12.01.2010 17:14

Цитата:

Сообщение от Дроздов (Сообщение 12229)
... надо сделать так, чтоб некоторые (или все) функции VBScript, можно было вставлять в js код...

Теоретически, решение ниже позволит Вам внедрить любую VBScript-функцию, неподдерживаемую в JScript:
-- описание по ссылке - http://with-love-from-siberia.blogsp...n-jscript.html,
-- полный текст скрипта - http://code.google.com/p/jsxt/source...32/VBScript.js.
var vb = {};


vb.Function = function(func)
{
    return function()
    {
        return vb.Function.eval.call(this, func, arguments);
    };
};


vb.Function.eval = function(func)
{
    var args = Array.prototype.slice.call(arguments[1]);
    for (var i = 0; i < args.length; i++) {
        if ( typeof args[i] != 'string' ) {
            continue;
        }
        args[i] = '"' + args[i].replace(/"/g, '" + Chr(34) + "') + '"'; // '
    }

    var vbe;
    vbe = new ActiveXObject('ScriptControl');
    vbe.Language = 'VBScript';

    return vbe.eval(func + '(' + args.join(', ') + ')');
};


/**
 *
 * InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])
 *
 */
var InputBox = vb.Function('InputBox');


/**
 *
 * MsgBox(prompt[, buttons][, title][, helpfile, context])
 *
 */
var MsgBox = vb.Function('MsgBox');


Часовой пояс GMT +3, время: 21:14.