Как проверить, является ли возвращаемая переменная функцией?JQuery проверить, является ли переменная функцией
var testController = function() {
alert('123');
}
$(function() {
$('[mfour]').each(function(e, t) {
var a = $(t).attr('mfour');
console.log($.isFunction(testController));
console.log($.isFunction(a));
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div mfour="testController">asd</div>
Обратите внимание, что на первых console.log
возвращает значение TRUE, когда имя функции жестко закодировано в то время как на втором console.log
если переменная оценивается возвращает FALSE.
Это странно, потому что var a
возвращает testController
.
Вот jsFiddle.
Моя цель состоит в том, чтобы запустить определенную базу функций по атрибуту mfour. Таким образом, в приведенном выше примере testController будет запускать функцию testController.
атрибут HTML всегда является строка, а не функция – Tom
'ATTR()' всегда возвращает строку, никогда функции. Тот факт, что это может быть * имя * функции, не имеет значения. –
Я думаю, вы скорее захотите что-то вроде http://stackoverflow.com/q/5848700/218196. –