Подтвердить что ты не робот

Как проверить, имеет ли объект функцию? (DoJo)

var testObj = this.getView();

Как я могу проверить с помощью DoJo (или только родной JS), если testObj имеет callableFunction, прежде чем я попытаюсь позвонить callableFunction() и не сработает, если его нет? Я бы предпочел решение native-DoJo, поскольку мне это нужно для работы во всех браузерах.

4b9b3361

Ответ 1

Вы можете называть это следующим образом:

testObj.callableFunction && testObj.callableFunction();

или в деталях:

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

Ответ 2

dojo имеет функцию, которую вы можете использовать для выполнения теста.

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

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

});

Ответ 3

Вы должны проверить, что свойство существует и является функцией:

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