Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   что означает $(this)? (https://javascript.ru/forum/jquery/58004-chto-oznachaet-%24.html)

fuckYankee 30.08.2015 08:54

что означает $(this)?
 
Какая то таинственная конструкция с тайным смыслом. По идее
<html>
<head>
</head>
<body>
<script>


$=function(arg){alert(arg)}
$(this)



</script>
</body>
</html>

это всегда window. Получается, что jq берет в качестве текущего контекста, тот контекст, который и так доступен дефолтно. Тогда зачем это?

рони 30.08.2015 09:46

Цитата:

Сообщение от fuckYankee
это всегда window.

ой
Цитата:

Сообщение от fuckYankee
Получается, что jq берет в качестве текущего контекста, тот контекст, который и так доступен дефолтно.

ещё ой
this в jQuery чаще всего элемент/ы - конструкцией $(this) его превращают в обьект с нужными свойствами.
Вам действительно интересно? или вам нравится создавать темы?

fuckYankee 30.08.2015 09:52

Да, мне интересно, *действительно*
Цитата:

Сообщение от рони
конструкцией $(this)

это просто ф-ция.
Цитата:

Сообщение от рони
его превращают в обьект с нужными свойствами.

как можно превратить window в *обьект с нужными свойствами*? Для этого надо с бубном возле него побегать?:)

рони 30.08.2015 10:21

Цитата:

Сообщение от fuckYankee
как можно превратить window

так это в вашей вселенной
Цитата:

Сообщение от fuckYankee
window

а моей
Цитата:

Сообщение от рони
элемент/ы

вот вам и требутся
Цитата:

Сообщение от fuckYankee
с бубном возле него побегать


laimas 30.08.2015 10:42

Цитата:

Сообщение от fuckYankee
как можно превратить window в *обьект с нужными свойствами*? Для этого надо с бубном возле него побегать?

alert($(window).width())

fuckYankee 30.08.2015 10:46

рони,
покажите пожалуйста в коде, как в вашей вселенной это происходит. Единственно возможный случай, когда так будет -- это если вы пишите код прямо в html
<script>
f=function(env){alert(env)}
</script>
<p onclick="f(this)">foo</p>

Вы можете показать другой случай?

fuckYankee 30.08.2015 10:54

laimas,
Да я понял смысл, спасибо. Ну надо же, какая глупость, однако:)

laimas 30.08.2015 10:56

Цитата:

Сообщение от fuckYankee
Вы ничего там не превратили, что взяли то и отдали, внутри функции сформировался jq-объект

Ну если вас терзает вопрос о свойствах, а не то, что в JQ можно и $(window), то зачем же что-то "превращать", они и так доступны?

Цитата:

Сообщение от fuckYankee
Единственно возможный случай, когда так будет...

Не обязательно явно, можно и:

<p id="as">ttt</p>

<script> 
    var e = document.getElementById('as');
    e.onclick = function() {
        alert(this.id)
    }
</script>

fuckYankee 30.08.2015 10:57

laimas,
Глупость в том, я имею в виду, что каждый раз формируется новый объект, засирая тем самым память и сажая производительность, тогда как он мог бы также быть дефолтным внутри либы. Хотя он скорей всего кэшируется, но все равно бред, сложность на пустом месте, и неочевидный код в итоге. Ребусы, мля.

fuckYankee 30.08.2015 10:58

Цитата:

Сообщение от laimas
можно и:

Нет, это несколько другое. Это примерно myFunc.call(theObject), обычное поведение. Речь шла именно о явной передаче.


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