js中this揭秘
2024-09-04 14:55:54
前端面试题中经常会考this指向问题,初学者通常都会晕头转向,不知所以然。今天我就来讲讲js中this指向问题。
this指向大概分为5种情况,记住这6个规律,基本上面试题都能解决。
通过圆括号直接调用(this指向window)
var name = "Tom"; function Person() {
var name = "Jim";
console.log(this.name);
} Person();
作为对象的方法打点调用(this指向调用该方法的对象)
var name = "Tom"; function Person(name) {
this.name=name;
console.log(this.name);
} var p = new Person("Jim");
console.log(this.name);
console.log(p.name);
作为事件处理调用(this指向发生事件的元素)
var oDiv=document.querySelector("div"); oDiv.onclick=function(){
console.log(this)
}
定时器调用(this指向window)
var oDiv = document.querySelector("div"); oDiv.onclick = function() {
setTimeout(function() {
console.log(this);
}, 1000);
}
数组下标调用(this指向数组)
var arr = [
"tom",
function() {
console.log(this);
}
] console.log(arr);
最后一点很重要,记住:this指向取决于函数的最终调用者,函数未被调用时,this指向一般都是window,所以一定要看准函数的调用者,此时可以确定上下文this的指向。
最新文章
- 登录FTP,下载并读取文件内容
- css Animation初体验
- .NET Framework 框架的一些简单介绍
- 面向服务架构(SOA)和企业服务总线(ESB)
- iOS开发 Masonry的简单使用
- [LeetCode]题解(python):80-Remove Duplicates from Sorted Array II
- C++多态性——函数的覆盖和隐藏
- 《你是我的小羊驼》游戏ios源码
- vi打开二进制文件
- [Head First Python]2. BIF(内置函数)
- android代码签名和混乱的包装
- ORA-01031:insufficient privileges解决方法
- java中equal方法总结
- 在Winform开发框架中对附件文件进行集中归档处理
- Windows Phone开发手记-WinRT下分组拼音的实现
- 剑指offer:从上往下打印二叉树
- vnc 登录 Ubuntu gnome 桌面出现 QXcbConnection : Failed to initialize XRandr 错误,然后打不开
- TCP系列02—连接管理—1、三次握手与四次挥手
- 【点分治】【FFT】Gym - 101234D - Forest Game
- 解决IIS的Server Application Error