为了更好的代码结构,我想使用一个包含所有属性的 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/