包装对象

var s='this is a string';

alert(s.length);//16

alert(s.indexOf('is'));//2

值类型不是对象类型,但是也可以拥有属性和方法,当运行时,JS会隐式为相应代码添加对象,这种行为叫做包装对象

 

实例代码:

var str = 'hello';//此刻str为string基本类型,也不是一个对象

str.number=10;//但是这行代码可以执行,就是因为JS会隐式为此行代码添加string对象有的属性和方法,但是用完之后,立马销毁了,在基本类型的包装对象下面创建一个对象

console.log(str.number);//undefined

 

执行var str = 'hello';的时候是没有问题的,str就是一个基本类型

当执行str.number=10;的时候,这个基本类要添加一个属性,他就会去这

个基本类型所对应的包装对象下面创建一个对象,然后把这个10添加到对象下面

这行代码执行完毕之后,这个包装对象就消失了,

消失之后当我们再去调用str.number的时候,这个str.number又重新创建

一个包装对象,但是这个时候的对象和上一行代码的对象不是一个,现在形成的新的对象

下面是没有这个str.number的,所以找到是undefined

 

 

包装对象:在JavaScript中只要引用了字符串(数字、布尔值也是一样的)的属性,JS就会将字符串通过调用new String(s)的方式转换成对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁。这个过程就叫包装对象

 

注意:我们显式创建的对象与JS自动隐式创建的对象是有区别的!

浏览器自己隐式创建的包装对象,是一个临时对象,在使用完后之后就会被抛弃了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值