我敢肯定这之前已经明确回答过,我试图搜索它..也许我的搜索词是错误的......
基本上我有一个 object myObject
,我有一组定义的属性和方法。我想要做的是能够处理对我尚未定义的属性和方法的调用/引用。
例如,假设我有这个:
var myObject = {
someProperty : 'foobar',
someFunction : function () { /* Do stuff */ }
}
目前,如果有人尝试调用myObject.someOtherFunction()
,JavaScript 会大喊大叫。我想要做的是设置一种自动处理它的方法。例如,我的对象不是 JavaScript 抛出错误,而是返回 false。这可能吗?
另一种看待它的方式是:
var myObject = {
someFunction : function () { /* Do stuff */ }
magicBucket : function () { /* Do stuff */ }
}
如果我打电话myObject.someFunction()
,那是定义并做一些事情。我想要发生的是,如果我要调用myObject.someOtherFunction()
,而不是 JavaScript 抛出错误,它会调用myObject.magicBucket()
.
原因是我有一个客户在他们的网站上使用第三方库。他们想停止使用它,但完全删除它需要花费大量时间和精力。所以作为一个短期解决方案,他们想知道我是否可以制作一个基本上什么都不做的虚拟文件。嗯,这个库使用了几个有很多方法的对象。我可以遍历所有内容并制作虚拟对象,但我想也许有一些简单的“包罗万象”的方法可以做到这一点。
有些人提到先检查方法是否存在,将其包装在条件中或 try..catch 等。嗯,重点是此时我无法触及对方法的实际调用。而且由于总体目标是最终完全删除编码,因此它甚至不适用。