Вы наверняка видели jquery. Знаете ли вы, что jquery позволяет вам создавать цепочки методов следующим образом:
$('.elements').css({color:'red'}).etc().etc()...
Но если вы заметили, эта функция возвращает вам массив объектов (?):
$(document).ready(function(){
var $elements = $('.c').css({color:'red'});
console.log($elements);
});
(Пример, см. консоль, чтобы увидеть результат)
Также работает функция $
:
$(document).ready(function(){
var $elements = $('.c');
console.log($elements);
});
(Пример, см. консоль, чтобы увидеть результат)
Оба возвращают массив, а затем могут продолжать цепочку. Как это возможно? Почему можно продолжать цепочку, если она не возвращает только this
(или сам объект)?
Я прочитал это сообщение, и он смог успешно добавить знак плюс, но это было к существующей строке, потому что он является прототипом строкового объекта.
Есть ли способ, которым я мог бы заархивировать это?
ОБНОВЛЕНИЕ
Я знаю, что он возвращает объект jquery, но как я могу вернуть свой объект, содержащий массив значений, и продолжать цепочку с возвращаемыми значениями.
ОБНОВЛЕНИЕ 2
Что я хочу заархивировать
У меня есть этот класс, и я хочу, чтобы метод возвращал массив моего объекта всякий раз, когда цепочка закончилась
var elements = Enumerable(anArray).Where(function(elements){ return elements != 1 })
Здесь цепочка закончилась, поэтому она должна возвращать элементы, удовлетворяющие условию, но я хочу сохранить цепочку, мне просто нужно сделать это:
elements = elements.Where(function(elements){ return elements == 1}).Take(3);
И продолжай цепляться так долго, как я хочу.
filter()
иslice()
? jsfiddle.net/5Nv4X/2 - person Dallas   schedule 20.08.2013