最近在看javascript权威指南 ,书上看到以下的代码:
var s = 'test';
s.len = 4;
var t = s.len ;
console.log(t);
这时候 t 报出 undefined ,为何啊?
最近在看javascript权威指南 ,书上看到以下的代码:
var s = 'test';
s.len = 4;
var t = s.len ;
console.log(t);
这时候 t 报出 undefined ,为何啊?
找到答案了,var s = 'test'创建的只是一个字符串,而不是对象,所以s.len = 4这时候赋值的对象属性是临时创建对象的属性,创建完就直接销毁了, 到了var t = s.len时候就找不到这个属性了,所以显示是undefined。
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答853 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
这里其实就引申出了
包装对象
的概念,你可以近似理解为这一步等同于下面几步操作而
同样道理,
s
不是对象,没有len属性 =>既然包装对象用完就销毁,没啥实际意义,为啥还要存在?
这是因为原始数据类型
string
,number
等是没有属性的,只有object
才有属性为了为
原始数据类型
提供属性
操作,才引申出包装对象这个概念比如当我们取
string
类型变量的length
属性也是隐含了这一步操作等效于