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

作者:拾光时间:2026-10-29 00:02:24浏览:361

本文探讨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>
作者最新文章