【发布时间】:2015-12-29 18:48:12
【问题描述】:
在 Javascript 中,我有一个对象,其中包含一个名为“dialogHost”的成员变量。它本身就是一个可以调用不同函数的对象。目前,我设置它的方式是,在大多数情况下,对象的 dialogHost 值是未定义的。在需要定义的极少数情况下,我将其定义为例如“window.parent”之类的东西。这样设置的问题是,任何时候我需要使用这个成员变量,我都要先检查它是否被定义,比如:
var myDelegate;
if (typeof (myObject.dialogHost) !== 'undefined') {
myDelegate = myObject.dialogHost.someFunction;
} else {
myDelegate = someFunction;
}
myDelegate(...);
我必须在几个地方进行此类检查,如果该值始终存在,那就太好了。在这种情况下,我应该简单地为 dialogHost 提供默认值“window”吗?我不确定这是否是个好主意。基本上,我希望默认值可以简单地调用:
// This would be equivalent to myDelegate(...) above...
myObject.dialogHost.someFunction(...);
无需每次都进行上述检查。有没有办法做到这一点?
【问题讨论】:
标签: javascript function object delegates