总结 全局环境 ➡️ window 普通函数 ➡️ window 或 undefined 构造函数
无论是否在严格模式下,this 均指向 window 对象。
console.log(this === window) // true
// 严格模式
'use strict'
console.log(this === window) // true
function test() {
return this === window
}
console.log(test()) // true
// 严格模式
'use strict'
function test() {
return this === undefined
}
console.log(test()) // true
函数作为构造函数使用时,this 指向构造出来的实例。
function Test() {
this.number = 1
}
let test1 = new Test()
console.log(test1.number) // 1
函数为箭头函数时,this 指向函数定义时上一层作用域中的 this 值。
let test = () => {
return this === window
}
console.log(test()) // true
let obj = {
number: 1
}
function foo() {
return () => {
return this.number
}
}
let test = foo.call(obj)
console.log(test()) // 1
函数作为对象的方法使用时,this 指向该对象。
let obj = {
number: 1,
getNumber() {
return this.number
}
}
console.log(obj.getNumber()) // 1
let obj = {
number: 1
}
function test(num) {
return this.number + num
}
console.log(test.call(obj, 1)) // 2
console.log(test.apply(obj, [2])) // 3
let foo = test.bind(obj, 3)
console.log(foo()) // 4
到此这篇关于javascript 中this指向问题案例详解的文章就介绍到这了,更多相关JavaScript 中this指向问题内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: JavaScript 中this指向问题案例详解
本文链接: https://www.lsjlt.com/news/134005.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0