Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Простейший пример, но не работает. (https://javascript.ru/forum/misc/35719-prostejjshijj-primer-no-ne-rabotaet.html)

ololosh 25.02.2013 15:38

"тот" пример:
function User() {
  this.id = 1;

  this.sayHi = function() { 
    alert(this.id); 

  }.bind(this);

}

var user = new User();

setTimeout(user.sayHi, 1000); // выведет "1"


Мой код выше с obj - аналогичен, только у меня сразу объект, без функции-конструтора.

ksa 25.02.2013 15:39

Цитата:

Сообщение от ololosh
Мой код выше с obj - аналогичен

Да ты чё!? :haha:

ololosh 25.02.2013 15:47

Ок, конструктива с твоей стороны не будет, я понял. Просто не отписывайся тут и всё.

ksa 25.02.2013 15:48

setTimeout(user.sayHi, 1000);

Тут user - объект, а sayHi - его метод.

А что у тебя?
Цитата:

Сообщение от ololosh
func = obj.what;

Что есть func у тебя?

ksa 25.02.2013 15:49

Цитата:

Сообщение от ololosh
конструктива с твоей стороны не будет, я понял

Ты спец - тебе видней про конструктив... :D

ololosh 25.02.2013 15:58

Мой вопрос и сравнение моего кода с примером по ссылкы - вполне адекватны. И там, и там копирование функции с потерей контекста из-за this

Цитата:

Тут user - объект, а sayHi - его метод.
А что у тебя?
А у меня obj - объект, а what - его метод. Как бы не заметить это трудно.

Цитата:

Что есть func у тебя?
Копирование функции. В примиере она копируется в параметр setTimeout. У меня просто копирование.

Цитата:

Ты спец - тебе видней про конструктив...
Ты этим сейчас только подтверждаешь мои слова.
Просто не отписывай тут и всё. Смысл этой просьбы-то ты должен понимать, она не сложная.

ksa 25.02.2013 16:04

Цитата:

Сообщение от ololosh
А у меня obj - объект, а what - его метод. Как бы не заметить это трудно.

Только тебе трудно понять что это таки разные места... :D

Цитата:

Сообщение от ololosh
В примиере она копируется в параметр setTimeout.

"Она" там не копируется, а setTimeout будет выполняеть метод объекта. :D

Цитата:

Сообщение от ololosh
Просто не отписывай тут и всё.

Твоя просьба услышана... :D

ololosh 25.02.2013 16:12

Пиздец, задал вопрос на форуме, вместо того что бы ответить где я ошибаюсь, чел с колобком на аватаре начал писать "да ты че, ухаха", ставя многоточия смайлы после каждой строчки, назвал "тупым доцентом" (это же интернет, зачем тут следить за своим языком, ведь тут можно не бояться получить по ***** за свои слова), на сам мой вопрос отвечать даже не думал. На просьбу перестать флудить чел продолжает это делать и пишет при этом "твоя просьба успешна.....)))))" И даже после этой фразы продолжает писать ахинею

И это все из-за того, что я спросил, почему в моем примере не работет прием с методом bind.
Ахренеть, ну у вас и имбицилы тут водятся.

ksa 25.02.2013 16:17

Эээ, а мне теперь можно написать? :D

danik.js 25.02.2013 18:16

Цитата:

Сообщение от ololosh
var obj = {
        id: 123,
        what: function() {
            alert(this.id);
        }.bind(this)
    };
     
    func = obj.what;
    func();

К чему ты привязал метод what через bind(this) ? Правильно, к глобальному объекту (window). А в примере к конструктором к чему идет привязка? Правильно к объекту, на который указывает this при вызове конструктора.


Часовой пояс GMT +3, время: 01:43.