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

临时对象创建后被销毁

1. var str = "string"; 2. str.t = 5; //5 3. alert(str.t) //undefined 请问:定义基本类型str,步骤2中把基本类型str当做对象访问,解释器创建属性t并赋值成功后就销毁,后面代码也不能用,那创建的这个属性有什么用????

正在回答

1 回答

1. var str = "string"; 这个str是基本类型string,2. str.t = 5 基本类型怎么会有属性和方法呢? 因为此时js引擎中会自动创建一个对象,即 var str = new String('string');然后再调用这个对象的方法和属性,你的 str.t = 5 语句确实没问题,但是str (这里我叫做0号)这个对象,仅仅在代码执行的一瞬间被创建,然后马上被销毁,3.  alert(str.t) //undefined 此时的str.t 又会创建一个新的str对象(这个就是1号),和之前创建的str对象(0号)是不同的对象,而这个新的str对象(1号)刚创建,哪来的t属性?所以会弹出 undefined

4 回复 有任何疑惑可以回复我~
#1

不再热情似火

至于意义,你想一想,当你创建一个基本类型的时候,你不能调用toString(),split().slice().join().....等等方法的时候,你是什么心情?如果不销毁,不就成了引用类型?那基本类型还有什么意义?
2016-05-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

临时对象创建后被销毁

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信