Hi Christoph
function foreach(obj, func) {
for(var prop in obj) {
if(obj.hasOwnProperty(prop) && obj[prop] !== undefined)
func.call(obj, prop, obj[prop]);
}
}
hmm ... man müsste sich das lambda func auch sparen können, ich denke ein Kostrukt mit while-Schleife könnte reichen:
while ( obj.iterOwn(var) ) { BLOCK }
var wird in iterOwn gesetzt, muss aber selbst ein Objekt sein (String() oder Number()) um bei reference übergeben zu werden.
so könnte man auch die whiles schachteln
~~~javascript
while (obj.iterOwn(var1) ) {
while (obj.iterOwn(var2) ) {
}
}
und vor allem break und continue nutzen
~~~javascript
Object.prototype.set = function(key, value) {
this[key] = value;
return this;
};
na das ist redundant, sorry!
hash[key]=value reicht!
~~~javascript
> Object.prototype.get = function(key) {
> return this[key];
> };
ich würds aber "own" nennen, und auf das redundante set verzichten.
(ich überleg gerade, ob man noch ein hasOwnProperty braucht ...)
~~~javascript
Object.prototype.remove = function(key) {
var value = this[key];
this[key] = undefined;
return value
};
warum nicht delete(hash.key)?
Tschau
LanX