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

为什么弹出的是undefined? m不是已经实例化了吗?

为什么弹出的是undefined? m不是已经实例化了吗?

茅侃侃 2018-08-01 10:09:50
function age(){age.tom = '20';};var m = new age();alert(m.tom);
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

应该写成this.tom = '20' 而不是 age.tom = '20'
其中差别在于age.tom = '20'是给函数绑定了一个叫做tom的属性;
this.tom = '20'表示的是在通过new操作符调用创建新对象的时候,将属性tom绑定给新创建的对象。
最后给提一个中肯的建议:为了区别函数和构造器,最好将构造器命名成为一个名词,因为其表示一类事物,并且约定俗成的,其命名的开头字母需要大写,在这个问题中就用该写成function Age(){ this.tom = '20'; }

查看完整回答
反对 回复 2018-09-23
  • 1 回答
  • 0 关注
  • 535 浏览
慕课专栏
更多

添加回答

举报

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