Почему это изменение в прототипе Array не работает в моем плагине jQuery?

Я добавил следующий метод к прототипу Array:

Array.prototype.foreach = function(func){
    for(var i = 0; i < this.length; i++){
        if(!func(this[i]) === false) break; //return false from func in order to break the loop
    }
    return this;
}

В том же файле, после приведенного выше кода, у меня есть следующий плагин jQuery:

jQuery.fn.addClassForEvents = function(){

    var that = this;

    arguments.foreach(function(event){
        that.bind(event[0], function(){
            that.addClass(event[0]);
        })
        .bind(event[1], function(){
            that.removeClass(event[0]);
        });
    });

    return this;
}

Чтобы использовать этот плагин jQuery, мой код выглядел бы примерно так:

$('div').addClassForEvents(['mouseenter', 'mouseleave']);

Однако браузер выдает ошибку на строке "arguments. foreach(...." плагина jQuery, просто заявляя, что

У объекта # нет метода 'foreach'

Однако метод foreach работает в других местах моего кода. Почему он не определен в этом плагине jQuery?

5
задан maxedison 29 January 2012 в 13:31
поделиться