Heim  >  Artikel  >  Web-Frontend  >  Problem mit diesem Hinweis in JS? Die umfassendste Erklärung dazu im Jahr 2018

Problem mit diesem Hinweis in JS? Die umfassendste Erklärung dazu im Jahr 2018

云罗郡主
云罗郡主nach vorne
2018-10-11 16:41:461993Durchsuche

Was Ihnen dieser Artikel bringt, betrifft dieses Zeigeproblem in JS? Die umfassendste Erklärung hierzu im Jahr 2018 hat einen gewissen Referenzwert. Freunde in Not können darauf zurückgreifen. Ich hoffe, sie wird Ihnen hilfreich sein.​

Problem mit diesem Hinweis in JS? Die umfassendste Erklärung dazu im Jahr 2018

Dies weist auf den Gerufenen hin

Dies im globalen Kontext

console.log(this)  //这里的this是全局下的this, 因此这个this默认指向的是BOM的顶级对象window

dies in der Funktion

var fn = function() {
	console.log(this)}fn()	//window

Dies hier ist dies in der Funktion fn, und die fn-Funktion wird von Fenster aufgerufen, sodass dies in dieser Funktion auf Fenster zeigt

dies im Objekt

var obj = {
	name: 'zhang',
	fnObj: function() {
		console.log(this)
	}}obj.fnObj()  //obj

Im obj-Objekt ist eine fnObj-Methode definiert, und diese wird darin gedruckt. Da fnObj vom obj-Objekt aufgerufen wird, zeigt dies in dieser Funktion auf seinen Aufrufer obj.

dies im Konstruktor

var func = function(ele) {
	console.log(this)  //func}var newFu = new func('p')

Dies im Konstruktor verweist auf den Konstruktor selbst

var func = function(ele) {
	this.box = document.querySelector('p')
	this.box.onclick = function() {
		console.log(this)   //p
	}}

Holen Sie sich eine Bezeichnung im Konstruktor und fügen Sie der Bezeichnung ein Ereignis hinzu. Dieses zeigt in diesem Ereignis auf das p, das das Ereignis aufgerufen hat.

Dies in der Pfeilfunktion

Pfeilfunktionen in der DOM&BOM-Umgebung

Dies in der Pfeilfunktion wird geerbt. Das heißt, dass dies in der Pfeilfunktion den Punkt „dieser“ von seinem übergeordneten Element erbt.

var a = {
	b : function(){
		var func = ()=> {
			console.log(this);  //这里的this指向a这个对象
		}
		func();
	},
	c : 'Hello!'}a.b()

Das übergeordnete Element der Pfeilfunktion func ist Funktion b. Funktion b wird von a aufgerufen. Daher erbt diese von Funktion b den Punkt von this in Funktion b wird durch apply, call, bind nicht geändert

var a = {
  b : () => {
    console.log(this)   //指向window
    var func = ()=> {
      console.log(this);  //这里的this指向window
    }
    func();
  },
  c : 'Hello!'}a.b()

Das Objekt der Pfeilfunktion b erbt von der Pfeilfunktion b, und das Objekt der Pfeilfunktion b erbt von seinem übergeordneten Objekt a. Da das Objekt a vom Fenster erstellt wird, zeigt das Objekt der Pfeilfunktion b auf das Fenster und die Pfeilfunktion func erbt den Pfeil Funktion b. davon zeigt daher auch auf Fenster

Pfeilfunktionen in der NodeJS-Umgebung
module.exports.b = 'haha'var b = 'asdvar a = {
  b: 'name',
  c: ()=>{
   console.log(this.b)  //haha
  }}a.c()

Der This-Zeiger in der Pfeilfunktion im Knoten erbt auch den This-Zeiger seiner oberen Ebene, hier gibt es jedoch kein Fensterobjekt, sondern zeigt auf das module.exports-Objekt.

Das Obige ist eine Frage zu diesem Hinweis in JS? Die umfassendste Einführung in diese Zeigeerklärung im Jahr 2018. Wenn Sie mehr über JavaScript-Video-Tutorial erfahren möchten, schauen Sie sich bitte die chinesische PHP-Website an.

Das obige ist der detaillierte Inhalt vonProblem mit diesem Hinweis in JS? Die umfassendste Erklärung dazu im Jahr 2018. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:blog.csdn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen