Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2012, 01:45
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 10.02.2012
Сообщений: 254

Вопрос про Proxy (ES5 Harmony)
(function() {
	var proxy = Proxy.create({
		get : function(proxy, name) {
			if (name < 0 && proxy.length + +name >= 0) {
				return proxy[proxy.length + +name]
			}
		}
	});

	window['arr'] = function() {
		var arr = Array.apply(this, arguments);
		arr.__proto__ = proxy;
		return arr;
	}
})();

var q = arr(1, 2, 3, 4, 5, 6, 7, 8, 9)

alert(q[0])
alert(q[1])
alert(q[2])

alert(q[-1])
alert(q[-2])
alert(q[-3])


при литеральной нотации используется родной конструктор Array.
Как научиться перехватывать запросы с отрицательными числами на ВСЕ массивы, созданные даже вот так [1,2,3] ?

Второй вопрос, как покрасивее сохранить методы массивов? или вообще все придется переписывать?
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2012, 02:58
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 10.02.2012
Сообщений: 254

Блин, че то я затупил) а не проще ли ретурнить прокси обьект а массив держат в памяти)? у меня прокси лежит в прототипе массива) и если запрос проходит мимо массива, то его перехватывает прокси и смотрит отрицательное ли число запрашивалос, если да то снова возвращается к массову, достает от туда нужный элемент и ретурнит его))

не проще ли создавать обычный массив, потом создавать прокси и делать прототипом прокси обьекта массив и ретурнить прокси)????

блин какой же я мудак что сразу не допер! на то и название ПРОКСИ)! Вопрос снимаю.
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2012, 03:48
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Proxy.create({
	get: function (proxy, i) {
		alert(i);
	}
}, [1, 2, 3])[-1];


только в стандарте отрицательные значения индексов уже вроде есть

----------------
что-то у меня еще нету Proxy в Chrome 19 dev, наверное какой-нибудь canary build надо качать

Последний раз редактировалось Octane, 14.02.2012 в 03:52.
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2012, 03:58
Профессор
Посмотреть профиль Найти все сообщения от Mахmахmахimus
 
Регистрация: 10.02.2012
Сообщений: 254

А можно как то пруф или ссылку где видел об этом?
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2012, 04:30
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

https://github.com/DmitrySoshnikov/es-laboratory
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос про null Arkinsstoun jQuery 5 04.01.2012 23:20
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
Вопрос про отправку данных методом Post QQQ AJAX и COMET 1 15.07.2009 23:27