我尝试在下面做一个非常简单的 IIFE,
<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>
为什么脚本警告“未定义”而不是“已定义”?
@编辑
该脚本应该按预期工作,除了:
- unintended
typeof obj.prop === undefined
是错误的,但obj.prop === undefined
应该改为使用。 当省略下面的括号时,脚本不会按预期工作,但不会从 rhino 引发语法错误。
function(_obj) {_obj.prop = 'defined';}(obj);