javascript对象是一种复合值,是属性和已命名值的集合,通过.符合来引用属性值,当属性值是一个函数的时候,称其为方法。
我们看到字符串也同样有属性和方法:
var s = 'test';
var l = s.length; //属性
var i = s.indexOf('t'); //方法
typeof s // string
但字符串s不是对象,是原始类型string,按理说原始类型是没有属性和方法的,那为什么字符串s会有属性和方法呢?
这是因为当引用了字符串s的属性或者方法时,javascript就会将字符串s通过调用new String(s)方式转换为对象,这个对象继承了字符串的方法,一旦属性引用结束,这个新创建的对象就会销毁,这个新创建的临时对象也叫作包装对象。但如果你对字符串的属性赋值,则会忽略这个操作。数字和布尔类型同字符串操作。