的,我想我可能會在谷歌搜索會失敗,也許這種模式只是不使用JavaScript處理MRO的方式放進去,但我在尋找一個相當於Perl的AUTOLOAD方法使得:的JavaScript相當於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什麼的?
我正試圖處理這種情況,我不知道可以調用什麼方法。最終,我想讓catchall方法根據方法的名稱設置屬性。也就是說,car()。color('red')可能會設置car.color ='red' – nebulous 2011-03-24 17:09:37
謝謝Mark,如果它是標準的話,那就是票。希望有另一條路線可能與異常處理,這是與大多數瀏覽器兼容。 – nebulous 2011-03-24 17:32:01
@nebulous,我添加了一個簡單的'try {} catch {}' – 2011-03-24 17:44:03