Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Контекст this для событий (https://javascript.ru/forum/events/50869-kontekst-dlya-sobytijj.html)

Boolean_Type 15.10.2014 17:56

Цитата:

Сообщение от danik.js (Сообщение 335769)
Покажи, где тут разничия в поведении?
1)  <a onclick =                "       alert(this)      ">
2)    a.onclick = function() {       alert(this)      };

Тут их нет, ты же в строке this указал) А если чё-то типа <a onclick = "some_fucking_func()">, и в этой some_fucking_func прописано alert(this), этот this будет Window.

Ладно, danik.js, ну отстань уже, я разобрался :D

danik.js 15.10.2014 17:56

Корявые шрифты поломали вырванивание. Вот:

Boolean_Type 15.10.2014 17:57

Цитата:

Сообщение от danik.js (Сообщение 335774)
Корявые шрифты поломали вырванивание. Вот:

Нафиг стока пробелов, я и так понял, что там написано)))

danik.js 15.10.2014 17:58

Цитата:

Сообщение от Boolean_Type
А если чё-то типа <a onclick = "some_fucking_func()">, и в этой some_fucking_func прописано alert(this), этот this будет Window.

То есть если сделать так то будет какая-то разница? :


Мы ведь это уже проходили, только вместо some_fucking_func() было f(). У тя провалы в памяти?

Так будет разница или нет?

Boolean_Type 15.10.2014 18:01

Цитата:

Сообщение от danik.js (Сообщение 335776)
У тя провалы в памяти?

Так будет разница или нет?

А у тебя? Я же ответил выше.
http://javascript.ru/forum/events/50...tml#post335773

danik.js 15.10.2014 18:13

Цитата:

Сообщение от Boolean_Type
Я же ответил выше.

Ты не ответил. Дословно:
Цитата:

Сообщение от Boolean_Type
А если чё-то типа <a onclick = "some_fucking_func()">, и в этой some_fucking_func прописано alert(this), этот this будет Window.

То есть в варианте с атрибутом будет Window, а в варианте со свойством - что-то другое?
Можешь не гадать, я уже пример накидал: http://javascript.ru/forum/events/50...tml#post335625

Boolean_Type 15.10.2014 18:32

Цитата:

Сообщение от danik.js (Сообщение 335784)
я уже пример накидал: http://javascript.ru/forum/events/50...tml#post335625

Нахер такие переподвыподверты? Зачем из-под одной ф-ции было вызывать f(), этот пример нихрена не показателен, там Window везде, что ты им сказать-то пытался?
<button onclick='f(event)'>this в атрибуте (кликни)</button>
<button id="button2">this в свойстве (кликни)</button>
<script>
    function f(event) {
        alert(this);
    }
    button2.onclick = function(event) {
        alert(this); //нахер тут было f вызывать? Я уже понял, что там Window) И ты ещё говоришь, что я хитрая жопа?:D 
    };
</script>

terminator-101 15.10.2014 18:44

Boolean_Type,
А кто сказал, что там правильно написано?
f=function(){alert(this.foo)}
el1.onclick=f
el2.onhuy=f

Здесь f -- обработчик какого события, какого эдемента?

danik.js 15.10.2014 19:15

Цитата:

Сообщение от Boolean_Type
нахер тут было f вызывать?

А нахер в onclick="f()" вызывать f() ? :D

kostyanet 15.10.2014 21:12

danik.js, нахер вообще что-то вписываете? какие-то ивенты-шмывенты.

смысла дискуссии я не уловил. Если у функции аргументы не обозначены явным образом - значит не обозначены явным образом, а this ну просто обожает появляться неявным образом, собственно как и все прочие переменные дружеского и вражеского окружения.

http://learn.javascript.ru/play/eG9lQ


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