Почему ‘this’ в объекте окна отображения функции, где в качестве ‘this’ в аргументе отображается объект из функции, был вызван?

#javascript

#javascript

Вопрос:

Почему ‘this’ в объекте окна отображения функции, где в качестве ‘this’ в аргументе отображается объект из функции, был вызван?

 function show(x){
 alert(x)//displays [object HTMLDivElement]
 alert(this)//displays [object Window]
}

<div onClick="show(this)">123</div>
  

Комментарии:

1. Прочитайте много вопросов и найдите в Интернете «javascript this». -1 поскольку вопрос не показывает усилий по исследованию (многие сайты с радостью объяснят это вам, если вы их спросите).

2. @ChrisMorgan сделает это в следующий раз. один вопрос, однако, если я не передал это в качестве аргумента в функции show , есть ли способ получить объект HTMLDivElement, отображаемый в функции show, без передачи идентификатора?

Ответ №1:

Поскольку функция определена в глобальной области видимости, поэтому «this» будет ссылаться на объект window.

Комментарии:

1. Спасибо за ваш ответ, если я не передал это в качестве аргумента в функции show , есть ли способ получить объект HTMLDivElement, отображаемый в функции show, без передачи идентификатора

2. Это немного больше, чем просто это. obj = { example: function() { alert(this); } }; f = obj.example; f(); также следует предупредить ‘[окно объекта]’. Правила для this сначала немного сбивают с толку.