JavaScript 嵌套函数中 this 指向问题与解决方案

作者:拾光

时间:2026-10-29

浏览:360

本文探讨JavaScript中嵌套函数调用时this指向丢失的问题。通过示例展示在外部函数保存this引用为变量,并在内部函数使用该变量来正确访问外部上下文对象的方法,解决常见的作用域陷阱。

文章目录

JavaScript 嵌套函数中 this 指向问题与解决方案

代码示例如下:

 
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<script>
var stu = {
m: function() {
var self = this;
console.log(this === stu); // ==> true;
function f() {
// 调用嵌套函数时this不是指向调用外层函数的上下文
console.log(this === stu); // ==> false;
// 若想访问外部函数的this,需将外部函数的this保存在一个变量中。
console.log(self === stu); // ==> true;
} 
f();
} 
} 
</script>
<body>
</body>
</html>

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章