为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我不能在javascript中为字符串对象添加属性?

为什么我不能在javascript中为字符串对象添加属性?

撒科打诨 2019-07-27 14:12:10
为什么我不能在javascript中为字符串对象添加属性?我继承了另一个开发人员写的一些javascript代码。他不喜欢我们在整个项目中使用的网格组件,因此他决定编写自己的网格组件。他写的网格无法对日期进行排序,因为它只能绑定到字符串/数字。在使用之前,他将所有日期转换为字符串。我查看了他编写的日期函数的字符串格式,并认为我可以只使用原始值为字符串添加日期属性,然后在排序时查看字符串是否具有日期属性并基于此排序。但是,似乎您无法在javascript中向字符串添加属性。我不知道有些类型你不能添加属性。例如:<html><script>var test = "test";test.test = "test inner";console.log(test);console.log(test.test);</script>test.test将是未定义的。奇怪的。我的问题是为什么这段代码不起作用?而且,如果你能想到在该网格上排序日期的任何变通方法(除了实际绑定到日期对象而不是字符串,这将很难修复),这将是非常有用的。
查看完整描述

3 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

如果使用String对象,则可以添加属性:


var test = new String("test");

test.test = "test inner";

console.log(test.toString()); // prints out "test"

console.log(test.test); // prints out "test inner"


查看完整回答
反对 回复 2019-07-27
?
偶然的你

TA贡献1841条经验 获得超3个赞

“你不能为这些值分配属性”有点误导:由于自动装箱(更具体地说,是ECMA-262第5版第8.7.2节中描述的算法),将属性分配给基元是完全有效的。但是,属性将被添加到纯临时包装器对象而不是基元,因此无法获取属性(包装器对象不替换基元); 因此,为一个原语分配一个属性是一个noop,除非赋值有副作用(例如,如果属性是通过访问函数实现的)

查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 1399 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号