как определить, является ли переменная javascript функцией

+1 для разделения. Я просто приехал на проект, где некоторые классы находятся в файлах с другим именем, или смешаны в с другим классом, и невозможно найти их быстрым и эффективным способом. Можно бросить больше ресурсов в сборку - Вы не можете составить потерянное время программиста, потому что он не может найти, что правильный файл редактирует.

27
задан Gordon Gustafson 2 May 2011 в 19:52
поделиться

2 ответа

Используйте оператор typeof :

if (typeof model[property] == 'function') ...

Также обратите внимание, что вы должны быть уверены, что свойства, которые вы перебираете, являются частью этого объекта, а не наследуется как публичное свойство на прототипе какого-то другого объекта в цепочке наследования:

for (var property in model){
  if (!model.hasOwnProperty(property)) continue;
  ...
}
51
ответ дан 28 November 2019 в 04:58
поделиться

Думаю, вам может быть полезно следующее.

Как я могу проверить, является ли переменная javascript типом функции?

Кстати, я использую следующее для проверки функции.

    // Test data
    var f1 = function () { alert("test"); }
    var o1 = { Name: "Object_1" };
    F_est = function () { };
    var o2 = new F_est();

    // Results
    alert(f1 instanceof Function); // true
    alert(o1 instanceof Function); // false
    alert(o2 instanceof Function); // false
4
ответ дан 28 November 2019 в 04:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: