Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 02.06.2012, 21:42
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
и в качестве this в myfunc будет использоваться обьект proxyMyfunc я правильно понял?=)
нет, не правильно. передастся контекст тот же что использует функция proxyMyfunc но не сама функция
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #12 (permalink)  
Старый 02.06.2012, 21:47
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от devote Посмотреть сообщение
нет, не правильно. передастся контекст тот же что использует функция proxyMyfunc но не сама функция
а теперь?=)

function fnc (){
      
      alert(this.t)
      }
      
      (function ()
      {
      this.t = "ну и олень";
      fnc.apply(this, arguments)
      
      }());
Ответить с цитированием
  #13 (permalink)  
Старый 02.06.2012, 21:58
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
а теперь?=)
ну и теперь и вы передаете контекст, но контекст скорее всего равен объекту 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 );
}());
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #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.
Ответить с цитированием
  #15 (permalink)  
Старый 02.06.2012, 22:36
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cyber
вместо this тут logService и вызывается его метод format ,а в качестве аргументов передаются аргументы переданные user.log
верно
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #16 (permalink)  
Старый 02.06.2012, 22:43
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

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

еще один вопросик возник подскажите как устроен метод sort
смотрел тут но что то не нашел https://developer.mozilla.org/en/Jav...cts/Array/sort
Ответить с цитированием
  #18 (permalink)  
Старый 02.06.2012, 23:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от cyber Посмотреть сообщение
еще один вопросик возник подскажите как устроен метод sort
смотрел тут но что то не нашел https://developer.mozilla.org/en/Jav...cts/Array/sort
Т.е. алгоритм работы? Да тысячи их.
Точно сказать можно, только взглянув на исходный код этого метода.
Ответить с цитированием
  #19 (permalink)  
Старый 02.06.2012, 23:51
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от melky Посмотреть сообщение
Точно сказать можно, только взглянув на исходный код этого метода.
мне именно он и нужен , тот который браузер использует когда вызвается sort
Ответить с цитированием
  #20 (permalink)  
Старый 02.06.2012, 23:56
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

вот к примеру таже статья ссылку на которую я давал в начале поста, там приведен пример join
function join(separator) {
  if (!this.length) return '';

  var str = this[0]; 

  for (var i = 1; i<this.length; i++) {
    str += separator + this[i]; 
  }
  
  return str;
}

или автор сам писал этот код исходя из спецификации?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите понять поведение скрипта demoniqus Общие вопросы Javascript 3 02.03.2012 09:58
помогите понять jquery Xaver jQuery 0 13.04.2011 13:25
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50
Помогите понять куда копать warobushek Общие вопросы Javascript 10 13.05.2010 19:25
Помогите понять что надо "Удобное дерево" Fridrih AJAX и COMET 2 02.04.2010 10:12