【JS学习】JS中的 this 指向

在 JavaScrip 中,this 关键字用于引用当前正在执行的函数所属的对象。this 的值在运行时确定,取决于函数被调用的方式。

  1. 在全局作用域中,this 指向全局对象。在浏览器中,全局对象是 window 对象。
function fn(){
	console.log(this)
}

fn()

在这里插入图片描述

  1. 如果函数作为对象的方法被调用,则 this 指向该对象。
let person = {
	name: 'Alice',
	greet: function(){
		console.log('Hello, my name is ' + this.name)
	}
}

person.greet()   // "Hello, my name is Alice"
  1. 在事件处理程序中,this 指向触发事件的元素。
let button = document.getElementById("myButton")

button.onclick = function(){
	console.log(this.id)   // "myButton"
}
  1. 在构造函数中,this 指向该构造函数的实例化对象。
function Person(name, age){
	this.name = name
	this.age = age
}

let alice = new Person("Alice", 25)
console.log(alice.name)  // "Alice"
  1. 可以使用 call()、apply()、bind() 在调用函数时指定函数中 this 的值。
let person = {
	name: "Alice",
	greet: function(){
		console.log('Hello, my name is ' + this.name)
	}
}

let person2 = {
	name: "Bob"
}

person.greet.call(person2) // "Hello, my name is Bob"

你可能感兴趣的:(前端学习,#,JS学习,javascript)