簡體   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