繁体   English   中英

Javascript 对象中的变量方法

[英]Variable methods in Javascript objects

当我有一个带有该方法名称的变量时,我想检查是否存在 JavaScript 方法。

使用 PHP 我可以这样做:

$method = 'bar';
$object = new Foo;
if(method_exists($object, $method))
{
    //Foo->bar()
}

如何在 JavaScript 中做到这一点? 我的第一次尝试失败了:

var method = 'bar';
if(typeof(obj.method) != "undefined")
{
    obj.method();
}
else
{
    obj.default();
}

检查属性的类型是否为"function" ,使用method作为key进入obj typeof

((typeof obj[method] === "function") ? obj[method] : obj.default)();

我通常只做if(obj.method) {...}但你总是可以使用 try/catch:

try {
    obj.method();
} catch(e) {
    // obj or obj.method didn't exist, so let's try plan b
    obj.planB();
}
  (obj[method] || obj.default)();

如果你想单行它也可以。

['blah'].blah在 Javascript Object 中是等价的,所以你可以调用你的方法

obj[method]();

其中 method 是一个字符串,其中包含要调用的方法的名称。

您应该将对象的方法属性设置为typeoffunction 例如

 if (typeof(obj[method]) == "function") {
   obj[method]();
 }

这是解释如何检查 function 的 JSFiddle。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM