Думал как сделать, чтоб как в 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);
});
}
}
}
Ну и применить новое сокращение — _
вместо $
. Тем более $
в парсере переменная.