Re[16]: jQuery – Javascript нового поколения
От: AKS.  
Дата: 10.08.07 17:35
Оценка: 32 (1)
Честно говоря, надоело ждать, пока кто-нибудь исправит вот это ложное утверждение:

a — функция
b — не функция
c — не функция

Что и следовало ожидать. Почему a — функция? Читаем ECMA-262...


Почему не протестирован этот ма-а-алюсенький кусочек кода? Нет времени и денег на тесты с одним alert'ом?
Хорошо, пишу я:

var a, b, c;

a = /^\dfunction\d/;
b = new String('Wow, J(ava)Script is soooo functional...');
c = ['method', 'function', 'object'];
c.constructor = 'Lego';

// ...trust me... --John :)
function isFunction(fn) {
    return !!fn && typeof fn != "string" && !fn.nodeName && 
        fn.constructor != Array && /function/i.test( fn + "" );
};

alert([isFunction(a), isFunction(b), isFunction(c)]); // -> true, true, true!!!


Причем в случае с регвыром спецификация здесь ни при чем! Уберите символ f из рега и результат выполнения isFunction(a) будет false...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.