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

js困恼我的一个问题

js困恼我的一个问题

猛跑小猪 2018-12-06 14:13:50
我一直有个问题不明,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可以,恳请大叔解惑,万谢,如果有什么理解错误还请指点
查看完整描述

5 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

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

var str2="aaa" 只是给一个变量赋值,str2不是对象,只是变量

查看完整回答
反对 回复 2018-12-24
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

哦 原来前者是var str1=new String("aaa");

 alter(typeof str1) //输出object
var str2=new String();

 alter(typeof str2) //输出object
 str2="aaa";

 alter(typeof str2) //输出string

 

object属于对象 可以用name属性 输出aaa

所以string没name属性 是underfined

查看完整回答
反对 回复 2018-12-24
  • 5 回答
  • 0 关注
  • 471 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信