2011-12-26 78 views
4

我希望能夠做到這一點有沒有辦法在調用對象的未定義函數時調用自定義函數?

var o = { 
}; 
o.functionNotFound(function(name, args) { 
    console.log(name + ' does not exist'); 
}); 

o.idontexist(); // idontexist does not exist 

我覺得這個功能的確存在,但我無法找到它。

+3

請查看此文章:http://stackoverflow.com/questions/8283362/capture-method-missing-in-javascript-and-do-some-logic – 2011-12-26 05:35:18

回答

2

在當前狀態下,JavaScript不支持您需要的確切功能。評論中的文章詳細說明了可以做什麼和不可以做什麼。 「」但是,如果你願意放棄使用方法調用的,這裏有一個代碼示例是接近你想要什麼:

var o = 
{ 
    show: function(m) 
    { 
     alert(m); 
    }, 

    invoke: function(methname, args) 
    { 
     try 
     { 
      this[methname](args); 
     } 
     catch(e) 
     { 
      alert("Method '" + methname + "' does not exist"); 
     } 
    } 
} 

o.invoke("show", "hello"); 
o.invoke("sho", "hello"); 

輸出:

你好

方法'sho'不存在

相關問題