测试方法的存在

时间:2010-08-23 23:08:28

标签: javascript

我正在尝试使一些现有的JS向后兼容。如果方法不存在,我需要覆盖一个方法,否则只返回现有的方法。

这是我到目前为止的代码:

this.grid.getDataSource = function(){
    if (getDataSource == undefined)
        return getStore();
    else
        return getDataSource();
}

然而,它一直在“if”行返回错误:

  

getDataSource未定义

解决这个问题的最佳方式是什么?

4 个答案:

答案 0 :(得分:6)

这应该可以正常运行而不会出错。

if (typeof getDataSource != "function")

答案 1 :(得分:1)

您可能需要将其包装在()函数

this.grid.getDataSource = function(){
if (typeof getDataSource == undefined)
    return getStore();
    else return getDataSource();
}

答案 2 :(得分:1)

this.grid.getDataSource = getDataSource || getStore;

答案 3 :(得分:0)

这是一个很好的资源,应该回答你的问题。这是一个非常简单的功能。

http://phpjs.org/functions/method_exists:471