javascript - 创建一个 var 对象与多个 var 对象

标签 javascript

为了更好的代码结构,我想使用一个包含所有属性的 JavaScript 对象,而不是使用多个变量:

// 1. WAY
// This returns an error, as _inp cannot be accessed by input_value
// Uncaught TypeError: Cannot read property 'value' of undefined
var ref = {
_inp: input.target, 
input_value: _inp.value,
....
};

// 2. WAY
// When using this, it works
var ref = {
_inp: input.target, 
input_value: input.target.value,
....
};


// 3. WAY
// This obviously works, too.
var 
    _inp = input.target,
    input_value = _inp.value,

我的问题是,为什么 3.Way 有效而 1.Way 无效?

最佳答案

在示例 1 中,_inp 将是对象的属性。它不是一个变量。您只能通过对对象的引用来访问它(并且在对象存在之前它不会成为对象的属性,这将在对象文字被求值之后,另请参阅 Self-references in object literal declarations )。

关于javascript - 创建一个 var 对象与多个 var 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21696853/

相关文章:

javascript - 在 firefox 或 chrome 中获取 <img> 二进制文件,无需发出新请求

javascript - canvas.toDataURL() 不返回图像

javascript - 如何遍历一个元素的所有子元素

Javascript深度继承和 super 构造函数

javascript - 在尝试进行 JavaScript 测验时完全迷失了方向?

javascript - AngularJS - 取消选中单选按钮

javascript - 切换多个同名类中的 1 个的 css

javascript - 在对象数组中,如果对象值共享另一个键,如何对它们进行分组?

javascript - 如何在不为每条消息添加 hubot 的情况下访问 hubot?

javascript - 允许在文本区域中输入 HTML