JavaScript闭包实例:this指向与变量保存的差异

作者:小括号

时间:2026-10-29

浏览:204

本文通过两个JavaScript代码实例对比闭包中this指向与变量保存的区别。第一个示例展示了直接返回this.name导致的Window对象引用问题,第二个示例利用that变量保存当前对象上下文,从而正确获取对象属性。

文章目录

闭包中this指向与变量保存的对比

本文通过具体代码示例,深入解析JavaScript中闭包机制的实际应用。以下两个实例展示了在对象方法中处理内部函数时,关于this关键字指向及变量引用的不同处理方式,供开发者参考学习。


var name = "The Window";
var obj = { 
  name: "My Object", 
  getNameFunc: function() {
    return function() { 
     return this.name; 
    }; 
  } 
};
console.log( obj.getNameFunc()() );


var name = "The Window";
var obj = { 
  name: "My Object", 
  getNameFunc: function() {
    var that = this;
    return function() { 
     return that.name; 
    }; 
  } 
};
console.log( obj.getNameFunc()() );

希望上述关于闭包原理及this作用域变化的解析,能帮助读者更好地理解JavaScript程序设计中的上下文绑定问题,从而在实际开发中避免常见的引用错误。

实用工具推荐

电子包浆

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

使用 ›
图片压缩

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

使用 ›
相关文章