关于构造函数的一些输出值

关于构造函数的一些输出值

function person(name,age){

this.name=name;

this.age=age;

}

var obj =new person('zhansan',18);

console.log(person.name); //person.name为什么输出值是person而person.age是undefined

console.log(person.age);

console.log(obj.name);

console.log(obj.age);

问题都在对应行中的注释中标注了。

person.name输出值是person而person.age是undefined,为什么?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好, 对于你的问题解答如下:

  1. 因为name属于函数的默认属性,返回对应的函数名,所以person.name返回结果是person

  2. 因为在person函数内使用this设置的属性是挂载在实例化对象上,也就是说直接通过函数名person.age这种形式是访问不到的,所以返回的是undefined, 需要使用实例化对象(这里的obj)才可以访问到。

同学可以试着理解下,祝学习愉快~

  • 王文辉 提问者 #1
    我可以这么理解吗,其实person.name本来应该和person.age一样,都是访问不到的,不过由于name是所有函数的默认属性,返回函数名,所以person.name访问到了函数名
    2020-03-26 10:52:40
  • 好帮手慕慕子 回复 提问者 王文辉 #2
    同学你好, 可以这样理解,祝学习愉快~
    2020-03-26 11:58:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师