当我们尝试将动态属性添加到字符串中时,我们会发现它不会生效
上面的尝试将属性添加到字符串中,似乎是成功的,当您阅读时,您将无法得到。
这种情况的主要原因将出现在上面,即JS将包装在弦上。包装对象的生命周期很特别。例如,上面的输出语句,JS引擎将执行以下三个步骤:
可以理解
上述作业操作不是不能获得的?
原因是第二行代码将暂时创建一个字符串对象,并且在执行第三行代码后,该对象已被破坏。当读取第三行代码以读取字符串时,创建了一个新的包装对象。目前,此对象没有属性。
参考类型和原始值包装类型之间的主要区别是对象的生命周期。通过新实例的引用类型,离开示波器时所获得的实例将被销毁,并且自动创建的原始值包装对象仅在访问它的行执行期内存在。这意味着您不能在运行时添加属性和方法
如果您真的想将属性添加到字符串中,则可以定义上面的新属性:
但是,不建议通常这样做,这会影响所有字符串。相似,它们具有与以下特征相同的特征。