今天早上我遇到了一些奇怪的(遗留的?)JS 语法,可以归结为:var example = "String".Property = "Value";
在更改此代码之前,我找不到据我所知的此实现的有效案例...
var example = "String".Property = "Value";
console.log(example);
"String".Property = "Value";
console.log("String".Property);
console.log(String.Property);
上述代码片段第一部分中的“String”.Property实际发生了什么,它在被分配后是否立即被丢弃?
最佳答案
字符串文字是字符串
原始值。当后跟点 (.
) 运算符时,它们会隐式转换为 String 实例。
声明
var example = "String".Property = "Value";
相当于
var example = "Value";
.Property
引用没有任何意义。
随后,
"String".Property = "Value";
对全局环境没有净影响,因为字符串常量 "String"
被转换为 String 实例并设置了属性,但随后该对象因未分配而被丢弃任何事情。
每次使用导致隐式对象创建的字符串常量“String”
都会导致创建一个新的唯一对象。
关于JavaScript 字符串属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52415049/