Показать сообщение отдельно
  #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;


вопрос в том, что не догоняю как это все получается
Ответить с цитированием