猿问

js困恼我的一个问题

我一直有个问题不明,var str1=new String("aaa");var str2="aaa"; String构造函数这三者之间的关系还不是很明了呢,根据面向对象的原理,我发现str1和str2都可以看成String的实例对象(因为通过alert(str2.constructor),显示的是String构造函数,说明str2是通过String函数构造而来的对象),但是str2既然是对象为啥不能通过str2.name="aaa";alert(str2.name);得到name属性呢,而str1可以,恳请大叔解惑,万谢,如果有什么理解错误还请指点

猛跑小猪
浏览 472回答 5
5回答

桃花长相依

var str1=new String("aaa"); 其实有两个操作,第一、创建一个String对象,第二给str1 赋值。 var str2="aaa" 只是给一个变量赋值,str2不是对象,只是变量

慕尼黑的夜晚无繁华

哦 原来前者是var str1=new String("aaa");  alter(typeof str1) //输出objectvar str2=new String();  alter(typeof str2) //输出object str2="aaa";  alter(typeof str2) //输出string   object属于对象 可以用name属性 输出aaa 所以string没name属性 是underfined
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答