包装对象 叁歲伎倆 2021-09-16 02:56 292阅读 0赞 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自动隐式创建的对象是有区别的! 浏览器自己隐式创建的包装对象,是一个临时对象,在使用完后之后就会被抛弃了。
还没有评论,来说两句吧...