Думал как сделать, чтоб как в jquery обращаться к объекту. Вроде: Объект.Функция().Функция2()



            function self(iValue)
            {
                this.iValue = iValue;
            }
            self.prototype = {
                plus: function()
                {
                    this.iValue += 2;
                    return this;
                },
                inc: function()
                {
                    this.iValue = this.iValue * 10;
                    return this;
                },
                show: function()
                {
                    return this.iValue;
                }
            }

            new self(2).inc().plus().show(); // пример 1

            new self(2).inc().show(); // пример 2

            new self(2).plus().show(); // пример 3

    

Ну чтобы изобразить концепцию jquery: $(Array).menu(function(o){ o.className = 'example'; }).show().do_something_else();

Для ie как всегда нужно извернуться и написать немного по-другому.


function _(sId)
{
    return new pwork(document.getElementById(sId));
} // _

function $(sId) { return document.getElementById(sId); }

function pwork(o)
{
    this.name = 'pwork';
    this.oElement = o;
}
pwork.prototype = {
    element: function()
    {
        return this.oElement;
    },
    event: function(sType, fF)
    {
        Common.Event.add(this.oElement, sType, fF)
    },
    classToggle: function(sClass)
    {
        alert(this);
        Common.Class.match(this.oElement, sClass) ? Common.Class.remove(this.oElement, sClass) : Common.Class.add(this.oElement, sClass);
        return this;
    }
}

var Photobank = {
    file:
    {
        ready: function()
        {
            $('preview_input').disabled = true;
            var oInput = document.getElementById('photo');

            _('photo').event('change', function(){
                (function(){
                    var sResult = this.value;
                    var RegExp = /\.(rar|zip)$/;
                    document.title = sResult + ' : ' + RegExp.test(sResult);
                    if(RegExp.test(sResult))
                    {
                        Common.Class.add(_('preview').element(), 'enabled');
                        $('preview_input').disabled = false;
                    }
                    else
                    {
                        Common.Class.remove(_('preview').element(), 'enabled');
                        $('preview_input').disabled = true;
                    }


                }).call(oInput);
            });
        }
    }
}
    

Ну и применить новое сокращение — _ вместо $. Тем более $ в парсере переменная.