Задать вопрос
  • Куда делись некоторые расширения для Google Chrome?

    Потому что гуглоидные дегенераты от большого ума сделали разделение по языкам. Т.е. если приложение на английском, то в русском сторе его найти не удастся.
    Поэтому надо в настройках стора (такая иконка в виде шестерёнки в правом верхнем углу) выбрать в качестве языка English, и тогда поиск всё найдет.
    Ответ написан
    1 комментарий
  • JavaScript: что делает Function.call.apply(…)?

    mnasyrov
    @mnasyrov
    Всё просто :). Цель этого трюка — написать обёртку foo(), которая вызывает bar() в указанном контексте context и с переданными аргументами arg1, arg2 без лишних теложвижений.

    В традиционном виде, это выглядело бы так

    function bar(arg1, arg2) {}

    function foo(context, arg1, arg2) {
    bar.call(context, arg1, arg2);
    }


    Или так для произвольного числа аргументов:

    function bar() {}

    function foo() {
    var context = arguments[0];
    var args = Array.prototype.slice.call(arguments, 1); //делаем массив аргументов для bar
    bar.apply(context, args);
    }


    Вместо этого салата использовать трюк с call.apply:

    function foo() {
    Function.call.apply(bar, arguments);
    }


    Работает это так: aplly вызывает Function.call на объекте bar c переданными в foo параметрами. То есть получаем следующее для самого первого примера с context и arg1, arg2:

    bar.call(context, arg1, arg2)

    Что нам и нужно.
    Ответ написан
    Комментировать