Heim > Web-Frontend > js-Tutorial > Diskussion zum Zeigeproblem in js

Diskussion zum Zeigeproblem in js

小云云
Freigeben: 2018-03-16 17:09:09
Original
1278 Leute haben es durchsucht

Dieser Artikel teilt Ihnen hauptsächlich die Diskussion über das Zeigeproblem in js mit. Das Schlüsselwort this stellt das Objekt der aktuell ausgeführten Methode dar. Wenn keine aktuelle Methode vorhanden ist, verweist es auf die globale Variable. Das heißt, dies stellt die Referenz des Objekts dar, das die Methode aufruft.

1. Dies im globalen Bereich oder in der gewöhnlichen Funktion zeigt auf das globale Objektfenster.

//直接打印
    console.log(this) //window
//function声明函数
    function bar () {conso
le.log(this)}bar() //window
//function声明函数赋给变量
    var bar = function () {console.log(this)}bar() //window
//自执行函数
    (function () {console.log(this)})(); //window
Nach dem Login kopieren

2. Wer ruft das auf und zeigt auf wen

//对象方法调用
    var person = {run: function () {console.log(this)}}person.run()// person
//事件绑定
    var btn = document.querySelector("button")btn.onclick = function () {console.log(this) // btn}
//事件监听
    var btn = document.querySelector("button")btn.addEventListener('click', function () {console.log(this) //btn})
//jquery的ajax
    $.ajax({ self: this,    type:"get",    url: url,    async:true,    success: function (res) {console.log(this)
 // this指向传入$.ajxa()中的对象
    console.log(self) // window  } }); 
//这里说明以下,将代码简写为$.ajax(obj) ,this指向obj,在obj中this指向window,因为在在success方法中,独享obj调用自己,所以this指向obj
Nach dem Login kopieren

3 Im Konstruktor oder Konstruktor-Prototypobjekt zeigt dies auf die Instanz des Konstruktors

//不使用new指向window
    windowfunction Person (name) {console.log(this) // window    
    this.name = name;}Person('inwe')
//使用new
    function Person (name) {this.name = name   console.log(this) //people     
    self = this  }  var people = new Person('iwen')  console.log(self === people) //true
//这里new改变了this指向,将this由window指向Person的实例对象people
new改变this指向,将this指向window改为指向person的实例people
Nach dem Login kopieren

Ändern Sie den Zeiger davon:

Funktion Es handelt sich um einen besonderen Typ an sich. Auf wen dies verweist, kann nicht bestimmt werden, wenn die Funktion ausgeführt wird zeigt auf die Funktion, die es letztendlich aufruft.

Verwandte Empfehlungen:

Detaillierte Erläuterung der Verwendung und des Zugriffsqualifizierers von $this in PHP

Ändern Sie den this-Zeiger in JavaScript Verschiedene Methoden

diese Regeln und Beispiele für die Verwendung dieses Objekts in JavaScript

Das obige ist der detaillierte Inhalt vonDiskussion zum Zeigeproblem in js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage