【发布时间】:2011-03-24 17:00:18
【问题描述】:
我想我在谷歌上搜索可能会失败,也许这种模式不适合 JavaScript 处理 MRO 的方式,但我正在寻找与 Perl 的 AUTOLOAD 方法等效的方法:
function car() {
return {
start: function() { alert('vrooom') },
catchall: function() { alert('car does not do that'); }
}
};
car().start(); //vrooom
car().growBeard(); //car does not do that
在 Perl 中快速处理这种情况我会写:
sub AUTOLOAD { __PACKAGE__." doesn't do that" }
但是在 JavaScript 中捕获未定义方法的语法让我难以理解。 也许重载 .call 或 .apply 之类的?
【问题讨论】:
标签: javascript perl overloading