[UPDATE] Array.filter

Posted by & filed under javascript.

Hab‘ mich noch zu einer kleinen Verbesserung verleiten lassen…

Object.extend(Array.prototype, {
    filter : function(){
        var args = $A(arguments), fnc = args.shift(), tmpNew = new Array();
        if(typeof(fnc)!='function'){throw new TypeError()};
        this.each(function(element){
            args.unshift(element);
            if (fnc.apply(this,args)) {
                tmpNew.push(element)
            }
            args.shift();
        });
        return tmpNew;
    }
});

Damit sind jetzt u.a. weitere Paramater für die Testfunktion zulässig:

[1,2,3,4,5,6,7,8].filter(function(element,a,b){return element > a && element < b;},3,6);
// => [4, 5]
[1,2,3,4,5,6,7,8].filter(function(element){return element > 6;});
// => [7,8]
[1,2,3,4,5,6,7,8].filter(1,3,6);
// => TypeError
['aa',1,9,{},[],'bb'].filter(function(e,a){return typeof(e)==a},'number').filter(function(e,a){return e > a},8)
// => [9]

Zugriffsmethoden in JavaScript?

Posted by & filed under javascript.

Zugriffsmethoden (oder auch Akzessoren oder Getter und Setter) sind in der objektorientierten Programmierung spezielle Methoden, die ausgeführt werden, wenn einzelne Eigenschaften eines Objektes verändert oder ausgelesen werden.
Read more »

Prototype – Best practices

Posted by & filed under javascript.

Man sieht es immer wieder, das Webseiten die komplette Prototype-Bibliothek einbinden, aber diese nur für ein paar lächerliche Ajax-Requests verwenden. Manchmal sieht man noch den Einsatz der $-Funktion, der Rest wird schön mit klassischen JavaScript erledigt.
Kangax zeigt in seinem Artikel How well do you know prototype an ein paar (wenigen) Punkten, wie Prototype besser eingesetzt werden kann.