有没有办法在调用对象的未定义函数时调用自定义函数?

时间:2011-12-26 05:31:17

标签: javascript object

我希望能够做到这一点

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

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

我认为这个功能确实存在,但我找不到它。

1 个答案:

答案 0 :(得分: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");

输出:

  

您好

     

方法'笑'不存在