let checkedInput = {}
console.log(checkedInput);
checkedInput.addressNum = [/^.{5,20}$/, '地址必须大于等于5个字']
为什么在这里就能看到添加的属性?
let checkedInput = {}
console.log(checkedInput);
checkedInput.addressNum = [/^.{5,20}$/, '地址必须大于等于5个字']
为什么在这里就能看到添加的属性?
在 JavaScript 中,当你为一个对象添加属性时,这个属性会立即成为对象的一部分。在你的示例代码中,你首先创建了一个空对象 checkedInput
,然后使用 console.log
打印了它。此时,checkedInput
对象没有任何属性。
接下来,你通过 checkedInput.addressNum = [/^.{5,20}$/, '地址必须大于等于5个字']
添加了一个名为 addressNum
的属性到 checkedInput
对象上。这个属性是一个数组,包含两个元素:一个正则表达式和一个字符串。
再次调用 console.log(checkedInput)
时,你会看到 addressNum
属性已经被添加到 checkedInput
对象上了,因为它在添加之后立即成为了对象的一部分。
至于你提到的“为什么在这里就能看到添加的属性”,这是因为当你为一个对象添加属性时,这个属性会立即反映在对象上。在 JavaScript 中,对象是可变的,你可以随时向其中添加或删除属性。当你添加一个新属性后,下一次你访问或打印该对象时,新添加的属性就会显示出来。
需要注意的是,console.log
只是打印了对象的状态。在 JavaScript 中,对象是通过引用传递的,所以当你打印一个对象时,你实际上是在打印该对象在那一刻的状态。如果你在打印对象后修改了它的属性,那么下一次你再次打印该对象时,你会看到这些修改。
总之,在你的示例中,你能够在添加属性后立即看到它,是因为 JavaScript 对象是可变的,并且当你打印一个对象时,你会看到它在那一刻的状态。
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
5 回答3.8k 阅读
被 log 的是一个对象。注意不是对象被 log 时的状态,而是对象本身。
于是,后续在对象上发生的任何事情,都是在 log 结果里看到。
如果想 log 当时的状态,可以达成字符串再 log 。