 
			
				29.03.2013, 00:04
			
			
			
		  
	 | 
 
	
		
		
		
			
			
			
				
				
				
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 10.07.2008 
					
					
					
						Сообщений: 3,873
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		А че из ифрейма достать другой конструктор не вариант? 
(function () {
	var iFrame = document.createElement("iframe"), iFrameDoc;
	document.body.appendChild(iFrame);
	iFrameDoc = iFrame.contentDocument || iFrame.contentWindow.document;
	iFrameDoc.open();
	iFrameDoc.write('<script>window.Array = Array</scr' + 'ipt>');
	iFrameDoc.close();
	window.$Array = (iFrame.contentWindow || iFrameDoc.defaultView).Array;
}());
$Array.prototype.test = function () {};
var array = [], $array = new $Array();
alert([
	"test" in array,
	"test" in $array,
	Array.isArray ? Array.isArray($array) : "",
	Object.prototype.toString.call($array),
	new $Array(1, 2, 3).concat(4)
]);
 
		
	
		
		
		
		
		
		
		
						  
				
				Последний раз редактировалось Octane, 29.03.2013 в 00:10.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 00:13
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от nerv_
			
		
	 | 
 
	| 
		не понял, что ты имеешь ввиду
	 | 
 
	
 
 Например в fancybox увидел проверку if ($.type($el) == 'object') { .. } 
Но для zepto type = 'array'. Проверка не проходит. И это кривизна zepto. 
 
	
 
	| 
		
			Сообщение от nerv_
			
		
	 | 
 
	| 
		зачем?
	 | 
 
	
 
 Там же увидел if ($el instanceof $) { ... } 
Опять же, для zepto это не сработает.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 00:41
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Тлен 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 02.01.2010 
					
					
					
						Сообщений: 6,601
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от rgl
			 
		
	 | 
 
	
		Aetae, 
Только функция должна быть чуть посложнее - нужно отсекать дробные числа, слишком большие числа, и много чего еще:
	 | 
 
	
 
 Ну я и не претендовал на окончательность - просто пример.) 
Кстати по поводу больших чисел - просто наш псеводомассив круче нативного. ))
 
	
 
	
		
			Сообщение от Octane
			 
		
	 | 
 
	| 
		А че из ифрейма достать другой конструктор не вариант?
	 | 
 
	
 
 Ну да, забыли об энтом варианте. Но тут свои подводные камни, ибо энтот $array уже не instance от Array. Да и грязно это, юзать стоит только если задача стоит "добиться N любой ценой".)  
		
	
		
		
		
		
		
			
				__________________ 
				29375, 35 
 
			 
		
		
		
		
		
						  
				
				Последний раз редактировалось Aetae, 29.03.2013 в 00:43.
				
				
			
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 01:27
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 junior 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 29.11.2011 
					
					
					
						Сообщений: 3,924
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	
		Там же увидел if ($el instanceof $) { ... } 
Опять же, для zepto это не сработает
	 | 
 
	
 
 в зепто для этого есть специальный метод
 
$.zepto.isZ( some );
 
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	
		Например в fancybox увидел проверку if ($.type($el) == 'object') { .. } 
Но для zepto type = 'array'. Проверка не проходит.
	 | 
 
	
 
 ради интереса проверил
 
var x = $( 'div' );
alert( $.type( x ) == 'array' ); // true
alert( $.type( x ) === 'array' ); // и так тоже true
  
		
	
		
		
		
		
		
			
				__________________ 
				Чебурашка стал символом олимпийских игр. А чего достиг ты? 
Тишина - самый громкий звук
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 10:01
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Octane, блин, круто! Это действительно делает то, что мне нужно. Но это конечно очень грязный хак. Я не уверен что его можно использовать. 
А есть еще подобные вариации для получения другого Array ? 
 
	
 
	| 
		
			Сообщение от Aetae
			
		
	 | 
 
	| 
		$array уже не instance от Array
	 | 
 
	
 
 Так это понятно. Это и отражает суть задачи - прототипы должны быть разными. Следовательно мы не будем иметь instance от Array.
 
	
 
	| 
		
			Сообщение от nerv_
			
		
	 | 
 
	| 
		в зепто для этого есть специальный метод
	 | 
 
	
 
 Я вкурсе. Но jquery-плагинам это неизвестно )
 
	
 
	| 
		
			Сообщение от nerv_
			
		
	 | 
 
	| 
		alert( $.type( x ) == 'array' ); // true
	 | 
 
	
 
 Я о чем и говорю. Коллекция zepto - массив. Коллекция jquery - объект. 
В плагинах бывает проверка через $.type и поведение jquery и zepto тут будет разным.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 12:42
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 junior 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 29.11.2011 
					
					
					
						Сообщений: 3,924
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		могу повторить свою точку зрения: если ты хочешь подключать жуквери плагины к зепто, то вряд ли обойдешься вышеперечисленным. Все равно придется лезть в код. 
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	| 
		Я вкурсе. Но jquery-плагинам это неизвестно )
	 | 
 
	
 
 не проще поиск и замена по регулярному выражению внутри плагина, чем вся эта акробатика?  
		
	
		
		
		
		
		
			
				__________________ 
				Чебурашка стал символом олимпийских игр. А чего достиг ты? 
Тишина - самый громкий звук
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 13:09
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.01.2013 
					
					
					
						Сообщений: 1,098
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 danik.js, 
 это еще чо , мы тогда пытались функции с другим прототипом получать вот это было весело) 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 13:49
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от nerv_
			
		
	 | 
 
	| 
		не проще поиск и замена по регулярному выражению внутри плагина, чем вся эта акробатика?
	 | 
 
	
 
 Правки плагинов - это ведь и есть акробатика. Не проще ли раз и навсегда устранить различия между jquery и zepto ? Нет ведь принципиальных проблем сделать это.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 14:17
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 junior 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 29.11.2011 
					
					
					
						Сообщений: 3,924
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от danik.js
			
		
	 | 
 
	| 
		Не проще ли раз и навсегда устранить различия между jquery и zepto ?
	 | 
 
	
 
 проще использовать жуквери. Или жуквери 2.0    А если устранить различия (полностью, как ты хочешь), то вместо зепто мы получим жуквери.
 
Могу еще пример привести: когда пытался подключить жуквери плагин к зепто, оказалось, что в зепто нет метода  pushStack.  
		
	
		
		
		
		
		
			
				__________________ 
				Чебурашка стал символом олимпийских игр. А чего достиг ты? 
Тишина - самый громкий звук
			 
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				29.03.2013, 15:48
			
			
			
		  
	 | 
 
	
		
		
		
			  | 
			
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 11.09.2010 
					
					
					
						Сообщений: 8,804
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	| 
		
			Сообщение от nerv_
			
		
	 | 
 
	| 
		А если устранить различия (полностью, как ты хочешь)
	 | 
 
	
 
 Пффф. Почему полностью? 
Дописать $.prototype = перед $.fn - это всего 12 символов 
Ну с коллекциями будет чуть сложнее, но правок будет не так уж и много. На уровне ядра больше ничего править то и не нужно (наверное). С чего ты взял что после этих правок zepto станет jquery? 
Это не кучи говна ради совместимости с IE6, не миллионы оберток, исправляющие недочеты быдлокодеров, css-анимация никуда не денется. Selector engine не добавится. 
В общем я знаю две вещи: 
1) нужно по возможности использовать Zepto. Ибо работает быстрее, грузится быстрее, и не содержит тонны мертвого кода. А ишак( IE8- ) пускай хавает jQuery. 
2) при желании можно писать плагины, совместимые как с jQuery, так и с Zepto. И это не так уж и сложно.  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |