2012-04-19 10 views
1

私はJavaScriptコードベースを継承しました。私はJavaScriptを初めて使用しています。私はJSHintを使用して、一般的な間違い、誤用を避けるために使用しています。 JSHintは、コードのこの部分を見つけたが、私は悪にevalを避けるために、方法がわからない悪い評価のこのケースを避けるにはどうすればいいですか?

function GetProperties(object) { 
    var result, property, t; 
    result = ''; 
    for (property in object) { 
     if (property.indexOf('Get', 0) === 0) { 
      t = object[property] + "..."; 
      eval("if (GetNumOfParameter(t) == 0) var m = object." + property + "(); else var m = -100;"); 

      if (window.m != -100) { 
       result += property + ': ' + window.m + '\r\n'; 
      } 
     } 
    } 
    return result; 
} 
+3

'var m = object [property]()'おそらく? –

答えて

2

は以下のものを使用し、それははるかに良いですが、あなたはドン場合mを使用する必要はありませんそれ以外の場所では使用しないでください。

function GetProperties(object) { 
    var result, property, t; 
    result = ''; 
    for (property in object) { 
     if (property.indexOf('Get', 0) === 0) { 
      t = object[property] + "..."; 

      if (GetNumOfParameter(t) == 0) 
       result += property + ': ' + object[property]() + '\r\n'; 
     } 
    } 
    return result; 
} 
+0

(例えば) 'GetNumOfParameter(t)== 0'の代わりに、単純に'!GetNumOfParameter(t) ' – Zirak

関連する問題