同一已定义对象内的未定义对象方法调用

9w11ddsr  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(279)

我有以下情况:
我有一个js(父)类,它构造/创建另外两个类。父类附着到客户端(浏览器)上的窗口对象。我的问题是以下列方式的通话: window.parent.create({data: window.parent.utility.getId()}) 在极少数情况下,比如200分之一或1000分之一,我会收到一个错误,说不能打电话 utility 未定义的!
这意味着 parent 类未定义!但如果它没有定义,它怎么会打电话给 window.parent.create() ?
什么可能允许 parent 在第一次调用中定义,然后在内部调用中使其未定义?

des4xlb0

des4xlb01#

但是,如果它没有定义,它是如何调用window.parent.create()的呢?
参数是在调用函数之前处理的(毕竟,程序需要知道函数的参数)。这就是它失败的原因 window.parent.utility.getId() 而不是 window.parent.create() 这个 .getId() 他跑在第一位。
我敢打赌如果你换了 window.parent.utility.getId() 使用字符串文字,您将看到在 .create() 打电话吧。
正如下面bergi所指出的,编辑程序正在访问 window.parent.create 首先,谁会回来 undefined . 在处理参数并尝试将该值作为函数调用之前,该值并不重要。这个 getId() 函数在此之前失败,这就是您看到此特定错误的原因。

相关问题