gpt4 book ai didi

javascript - 我的立即调用函数表达式有什么问题?

转载 作者:行者123 更新时间:2023-11-29 17:25:07 25 4
gpt4 key购买 nike

我尝试在下面做一个非常简单的 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>

为什么脚本警告的结果是“未定义”而不是“已定义”?

@编辑

脚本应该按预期工作,除了:

  • 意外的 typeof obj.prop === undefined 是错误的,但应该改用 obj.prop === undefined
  • 当省略下面的括号时,脚本不会按预期工作,但 rhino 不会引发任何语法错误。

    function(_obj) {_obj.prop = 'defined';}(obj);

最佳答案

您的代码警告 'defined' 但原因错误。

这...

typeof obj.prop === undefined

应该是这样的吧

obj.prop === undefined

...因为 typeof 返回表示对象类型的字符串。


在测试 undefined 时不要使用 typeof hack。它令人困惑,并且可能是错误的来源,例如您遇到的错误。

如果你担心 undefined 被重新定义,那么这样做......

obj.prop === void 0

关于javascript - 我的立即调用函数表达式有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9456668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com