i've tried to do a very simple IIFE below,
<script type="text/javascript">
var obj = new Object;
(function(_obj) {_obj.prop = 'defined';})(obj);
if(typeof obj.prop === undefined)
alert('undefined');
else
alert(obj.prop);
</script>
Why does the script alert "undefined" than "defined" as a result?
@EDIT
The script shoud have worked as expected except:
- The unintended
typeof obj.prop === undefined
is wrong, butobj.prop === undefined
should be used instead. When omitting parenthesis below, the script doesn't work as expected but none of syntax error is raised from rhino.
function(_obj) {_obj.prop = 'defined';}(obj);