Ответы пользователя по тегу Node.js
  • DB для node.js

    gaelpa
    @gaelpa
    Ну если для самообразования и джаваскрипт, то попробуйте воспользоваться CouchDB. Не то, чтобы очень родная но языковая связь имеется.
    Ответ написан
    Комментировать
  • JavaScript: что делает Function.call.apply(…)?

    gaelpa
    @gaelpa
    Зачем: для создания метода объекта, принимающего подстановку «this» как первый параметр.
    Function.apply.apply даст другой эффект ввиду того, что apply и call принимают разные параметры.

    Зачем на более высоком уровне: приходит в голову только как вариант для построения библиотеки утилит для организации «красивого» вызова и незамусоривания пространства имён

    При вызове происходит следующее, если кому интересно:
    // в контексте примера
    var a={ toString:function(){return 'a'} };
    Foo.method(a,1,2,3);
    

    1. в apply передается: объект «Foo.prototype.method», параметры [a,1,2,3]
    2. вызывается Foo.prototype.method.call(a, 1,2,3), т.е. Foo.prototype.method от имени объекта a
    3. вызывается console.log(a, 1,2,3); т.к. this===a

    P.S. исходный пример целиком:
    Another trick is to use both call and apply together to create fast, unbound wrappers.
    function Foo() {}
    
    Foo.prototype.method = function(a, b, c) {
        console.log(this, a, b, c);
    };
    
    // Create an unbound version of "method" 
    // It takes the parameters: this, arg1, arg2...argN
    Foo.method = function() {
        // Result: Foo.prototype.method.call(this, arg1, arg2... argN)
        Function.call.apply(Foo.prototype.method, arguments);
    };
    Ответ написан
    Комментировать