Показать сообщение отдельно
  #14 (permalink)  
Старый 02.06.2012, 22:12
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от devote Посмотреть сообщение
ну и теперь и вы передаете контекст, но контекст скорее всего равен объекту window:
function fnc() {
    alert( "Наш контекст внутри функции fnc: " + this );
    alert(this.t);
}
       
(function () {
    alert( "Наш контекст внутри безымянной функции: " + this );

    this.t = "ну и олень";
    fnc.apply( this, arguments );
}());
Другой вариант:
function fnc() {
    alert( "Наш контекст внутри функции fnc: " + this );
    alert(this.t);
}
       
(function () {
    alert( "Наш контекст внутри безымянной функции: " + this );

    var context = {
        t: "ну и олень"
    };

    fnc.apply( context, arguments );
}());
а теперь дошло
var user = {
  log: function() {
logService.add.apply(logService, arguments);
  }
}

var logService = {
  add: function() {
    alert( this.format(arguments) );
  },

вместо this тут logService и вызывается его метод format ,а в качестве аргументов передаются аргументы переданные user.log
format: function(args) {
    return [].join.call(args, ' ');
  }
}

user.log("Вася", "сказал", "что-то умное..");

Последний раз редактировалось cyber, 02.06.2012 в 22:20.
Ответить с цитированием