
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?
Được chỉnh sửa bởi jfd34 vào
Tất cả các câu trả lờ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.