Показать сообщение отдельно
  #2 (permalink)  
Старый 01.11.2010, 19:49
Аватар для eai
eai eai вне форума
Аспирант
Отправить личное сообщение для eai Посмотреть профиль Найти все сообщения от eai
 
Регистрация: 09.07.2009
Сообщений: 36

чуть не забыл, понадобятся еще служебные функции.

в исходнике реализована функция $a которая используется по всей библиотеке. Нам интересна ее способность преобразовывать аргументы функции в массив. записал так
function args2array(obj)
{
	var al = obj.length;
	var args = new  Array(al);
	while (al--) 
		args[al] = obj[al];
	
	return args;
};


Еще есть функции проверяющие тип объекта.
Реализация их не очень интересна, однако для чистоты эксперимента выкладываю код тоже
Интерес вызывает isElement и isRegExp так как похоже для корректной работы потребуются дополнительные действия, но об этом позже.
function isElement(obj) 
{ 
	return (obj && obj.nodeType && obj.nodeType == 1) ? true : false; 
};
function isRegExp(obj) 
{ 
	return (obj && obj.constructor === RegExp); 
};
function isString(obj) 
{ 
	return (typeof obj == 'string'); 
};
function isNumber(obj) 
{ 
	return (typeof obj == 'number'); 
};
function isBoolean(obj) 
{ 
	return (typeof obj == 'boolean'); 
};
function isNull(obj) 
{ 
	return (obj === null); 
};
function isUndefined(obj) 
{ 
	return (obj === 'undefined' || obj === undefined || obj === 'unknown'); 
};
function isArray(obj) 
{ 
	return (obj && obj.constructor === Array); 
};
function isSimple(obj) 
{ 
	return (isString(obj) || isNumber(obj) || isBoolean(obj) || isRegExp( obj)); 
};
function isFunction(obj) 
{ 
	return (obj && obj.constructor === Function); 
};
function isObject(obj) 
{ 
	return (obj && !(isArray( obj) || isFunction( obj) || isSimple( obj))); 
};

Последний раз редактировалось eai, 01.11.2010 в 19:52.
Ответить с цитированием