问答详情
源自:1-4 [JavaScript]包装对象

临时对象创建后被销毁

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

提问者:Focusing 2016-05-15 01:36

个回答

  • 不再热情似火
    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