web-dev-qa-db-ja.com

オブジェクトに機能があるかどうかを確認する方法は? (道場)

_var testObj = this.getView();
_

TestObjがcallableFunctionを持っている場合、実際にcallableFunction()を呼び出して、ない場合は失敗する前に、DoJo(またはネイティブJS)で確認するにはどうすればよいですか?すべてのブラウザで動作するためにこれが必要なので、ネイティブDoJoソリューションを好むでしょう。

36
antonpug

次のように呼び出すことができます。

testObj.callableFunction && testObj.callableFunction();

または詳細:

if (typeof testObj.callableFunction == 'function') {
    testObj.callableFunction();
}
82
dfsq

dojoには、テストの実行に使用できる機能があります。

require(["dojo/_base/lang"], function(lang){

  var testObj = this.getView();
  if(lang.isFunction(testObj.callableFunction)){
    testObj.callableFunction();
  }

});
4
Craig Swing

プロパティが存在し、関数であることをテストする必要があります。

var returnFromCallable = typeof testObj.callableFunction === 'function' &&
    testObj.callableFunction();
2
jbabey