Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Array.prototype.slice() (https://javascript.ru/forum/misc/42887-array-prototype-slice.html)

kuzroman 13.11.2013 10:36

Array.prototype.slice()
 
У Джона Резига встретил такой пример:

<input id="first"/>
<input id="second"/>

var elems = {

            length: 0,                                                

            add: function (elem) {                                      
                Array.prototype.push.call(this, elem);
            },

            gather: function (id) {                                     
                this.add(document.getElementById(id));
            }
        };

    elems.gather("first");    
    elems.gather("second");


Мы создаем обычный объект и наделяем его имитируемыми функциональными свойствами массива.

Такой вопрос к знатокам: почему Array.prototyp в данном случае нельзя заменить на литерал [], ведь как я понимаю все что нам нужно от прототипа массива, так это его метод push. Использование литерала более локанично, есть мнения?

jsru_ 13.11.2013 10:50

возможно, в старых браузерах прототип работает быстрее

Skipp 13.11.2013 11:04

[].push - создание нового объекта массива и обращение к его методу
Array.prototype.push - обращение к методу уже существующего объекта массива
Немного не точно написал, но думаю поймёте.

kuzroman 13.11.2013 11:25

А, теперь ясно. Спасибо.


Часовой пояс GMT +3, время: 06:40.