Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.07.2014, 14:12
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

jQuery механизм
открыл исходник jQuery и убрав кучу всего + немного переделав, получил небольшой вот такой код:
<html>
	<head>
		<title>example</title>
	</head>
	<body>
		<script type="text/javascript">
var jQuery = function ()
	{
	return new jQuery.prototype.init();
	};

jQuery.prototype = {
	length: 0,
	get: function (i)
		{
		console.log(this[i])
		},

	splice: Array.prototype.splice,
	
	init: function ()
		{
		this[0] = 1;
		this[1] = 2;
		this.length = 2;
		return this;
		}
	};
	
jQuery.prototype.init.prototype = jQuery.prototype;

console.log(jQuery.prototype);
console.log(jQuery());
jQuery().get(1)
		</script>
	</body>
</html>


когда мы вызываем jQuery(), то получаем объект в виде массива, а не обычный объект. он получается если в коде есть 3 строки:
length: 0,
splice: Array.prototype.splice, // не обязательно splice, это может быть и join и любой другой метод от Array
jQuery.prototype.init.prototype = jQuery.prototype;


вопрос в том, что не догоняю как это все получается
Ответить с цитированием
  #2 (permalink)  
Старый 31.07.2014, 15:13
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от skrudjmakdak
когда мы вызываем jQuery(), то получаем объект в виде массива, а не обычный объект.
Не, мы получаем как раз таки обычный объект. Просто он отображается в консоле как массив. Не вникал в подробности, почему оно так. Просто консоль в хроме так работает. Видимо, чтобы ввести в заблуждение.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
хочу инвайт на хабр macdack Оффтопик 45 28.07.2013 23:18
Работа для знатока jQuery virtualbrest Работа 0 24.07.2013 16:05
Вопрос поддержки старых методов jQuery antonM jQuery 1 04.10.2012 00:08
jquery is not defined - странный случай tarya jQuery 2 16.07.2012 14:27
JQuery + FireFox NOOB jQuery 4 02.11.2009 18:16