JavaScript problem - properties assigned by setters are always undefined
Consider this JavaScript code:
function foo(x) {
var obj = {
set a(val) { document.write('Setting obj.a to ' + val + '\r\n'); }
};
obj.a = x;
return obj.a + 2;
}
var n = foo(3);
The value of n will be NaN instead of the expected 5.
Is this a bug in Firefox or there is something wrong with the JavaScript code itself?
Moambuepyre
Opaite Mbohovái (2)
This at least works.
function foo(x) {
var obj = { set aValue(val){ this.a=val; } };
obj.a = x;
return (obj.a + 2);
}
var n = foo(3);
alert(n);
It is obvious why the code given by cor-el will work. The setter function is not called at all. It is similar to this:
function foo(x) {
var obj = {};
obj.a = x;
return (obj.a + 2);
}
var n = foo(3);
alert(n);
I want something which sets a property of an object using a setter function, and then retreives the value of that property.