Задать вопрос
mannaro
@mannaro
Умею профессионально гуглить

Есть ли аналог .bind (MooTools) в JQuery?

Здравствуйте! Есть ли аналог .bind (от MooTools) в JQuery? Или его придется писать ручками?



Решение: Написать расширение прототипа Function:

if (!Function.prototype.bind) {<br>
  Function.prototype.bind = function (oThis) {<br>
    if (typeof this !== "function") {<br>
      // closest thing possible to the ECMAScript 5 internal IsCallable function<br>
      throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");<br>
    }<br>
 <br>
    var aArgs = Array.prototype.slice.call(arguments, 1), <br>
        fToBind = this, <br>
        fNOP = function () {},<br>
        fBound = function () {<br>
          return fToBind.apply(this instanceof fNOP && oThis<br>
                                 ? this<br>
                                 : oThis,<br>
                               aArgs.concat(Array.prototype.slice.call(arguments)));<br>
        };<br>
 <br>
    fNOP.prototype = this.prototype;<br>
    fBound.prototype = new fNOP();<br>
 <br>
    return fBound;<br>
  };<br>
}<br>
  • Вопрос задан
  • 3540 просмотров
Подписаться 4 Оценить 4 комментария
Решения вопроса 1
lacki
@lacki
Посмотрите на Function.prototype.bind Это стандарт, есть фолбек для бразуеров без поддержки .bind и трафика минимально.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@gelas
Самое близкое, хоть и не аналог, видимо jQuery.proxy
Ответ написан
@cakkypamucm
В jQuery — нет, есть в другой полезной библиотеке Underscore — _.bind
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы