临时对象创建后被销毁

来源:1-4 [JavaScript]包装对象

Focusing

2016-05-15 01:36

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

写回答 关注

1回答

  • 不再热情似火
    2016-05-15 10:46:36

    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

    不再热情似火

    至于意义,你想一想,当你创建一个基本类型的时候,你不能调用toString(),split().slice().join().....等等方法的时候,你是什么心情?如果不销毁,不就成了引用类型?那基本类型还有什么意义?

    2016-05-15 10:49:13

    共 1 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281112 学习 · 1020 问题

查看课程

相似问题