A függvény hívás helyének scopeja
Rövid leszek. :)
Meg lehet valahogy oldani, hogy a when hívásánál ne kelljen második paraméterben átadni a this-t? Lehet ezt tudni a függvényen belül, hogy mi volt az érvényes scope a függvény hívásakor? Próbálkoztam arguments.callee.caller féle trükkökkel, de egyik se működött. Ez így szépen megy, csak nem tetszik... :)Online verzió: http://wiktor.hu/dev/20070622/scope/
Előre is köszi, ha van ötlet!
■ Meg lehet valahogy oldani, hogy a when hívásánál ne kelljen második paraméterben átadni a this-t? Lehet ezt tudni a függvényen belül, hogy mi volt az érvényes scope a függvény hívásakor? Próbálkoztam arguments.callee.caller féle trükkökkel, de egyik se működött. Ez így szépen megy, csak nem tetszik... :)
- Function.prototype.when = function(expression, scope) {
- if (expression) {
- return this.apply(scope);
- }
- }
- var FooBar = {
- init: function() {
- this.number = 5;
- this.number2 = this.addFive.when(this.number > 1, this);
- console.log(this.number2);
- },
- addFive: function() {
- console.log("Add five to " + this.number);
- return this.number + 5;
- }
- }
- FooBar.init();
Előre is köszi, ha van ötlet!
Szerintem
nekem is úgy tűnik...
Objektumba csomagolás