javascript - 变量不持有对 `this` 的引用

标签 javascript

function test1() {
  this.name = 'test1';
  var that = this;

  function test2() {
    this.name = 'test2';
    console.log(that.name);
  }

  test2();
}

test1();

执行时,我希望控制台注销 test1。为什么我得到的是 test2?我希望 that 变量包含对 test1 函数的引用。

最佳答案

你的变量 that 成为一个对象引用,因为你为它分配了关键字 this 。这意味着变量 that 将是一个对象,并且它将引用 this(即当前对象)。

此外,变量that 不是值类型。它是一个对象。

有关这方面的更多信息,请搜索“值类型与引用类型”。

希望这对您有所帮助。

关于javascript - 变量不持有对 `this` 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50548432/

相关文章:

javascript - WP 音频简码和 AJAX

javascript - 使用部分值从数组中获取全部值

javascript - 在 Javascript 中获取数组计数

php - 多文件上传支持所有浏览器,特别是ie7,ie8和ie9

javascript - 从 Javascript 将变量写入 HTML

javascript - 如何计算总统候选人获胜的概率?

php - 使用服务器端脚本 (PHP) 创建 SVG 图形

javascript - 在 Mapbox 单击标记上运行函数//在相对于 Mapbox 坐标的位置显示 SVG

javascript - AngularJS 在有效的 ajax 数据到达之前设置虚拟选项元素

javascript - 正则表达式确保字符串以数字开头和结尾