javascript - 为什么将属性放在 `this` 上时不保留引用?

标签 javascript

为什么以下代码记录空数组,而不是加载的数组:

function Car() {
  var parts = [];
  
  this.parts = parts;
  this.loadParts = loadParts;
  
  function loadParts() {
    parts = ['engine', 'wheels'];
  }
}

var audi = new Car();
audi.loadParts();
console.log(audi.parts);

(尝试实现显示模式)

最佳答案

您正在操作封闭的局部变量 parts,而不是 this.parts

将您的代码更新为:

function loadParts() {
  this.parts = ['engine', 'wheels'];
}

获得更可预测的结果。

关于javascript - 为什么将属性放在 `this` 上时不保留引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31113022/

相关文章:

javascript - 关于刷新MySQL上自动提交的浏览器数据

javascript - 使用 data() 访问元素?

javascript - 在 AngularJS 中使用带有 promise 的闭包

javascript - 如何使用 d3.js 在 areaplot 中设置颜色和网格?

javascript - 尽管没有错误,但未显示弹出窗口

javascript - 弹出图像并隐藏所有索引

javascript - Angularjs: `$applyAsync` 与 `$apply` 带套接字

javascript - Redux-Toolkit extraReducers 列在 reducers 之后导致问题(TS2322 错误)

javascript - jQuery DatePicker 上的 Destroy 方法删除了 DatePicker,但是当我重新实例化一个新的时,仍然选择了先前选择的 Date 值

javascript - jquery 获取跨度值