javascript - 为什么弹出的是undefined,我将name()的实例赋给Toms的属性mono了啊?
伊谢尔伦
伊谢尔伦 2017-04-11 12:16:50
[JavaScript讨论组]
    function name()
    {
        this.age = "15";
    };
    function Toms()
    {
        this.mono = new name();
    };
    
    
    var Tom = new Toms();
    alert(Toms.name);
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(7)
PHP中文网

因为你没有定义这个属性,所以undefined。

this.mono = new name(); //只给Toms定义了一个mono属性,指向name对象而已。
console.log(Tom.mono);  //name {age: "15"}
console.log(Tom.mono.age);  //15

还有,问题里的代码alert(Toms.name); 是会打印出东西的,打印出你定义的Toms的name属性,也就是函数名。

天蓬老师

Tom对象包含一个mono属性,mono属性指向一个包含age属性的对象,并没有name属性,为什么不是undefined

黄舟
alert(Tom.mono)
黄舟

不知道你在玩什么奇淫技巧:)

怪我咯

excuse me ???????

ringa_lee

浏览器版本不一样,我弹出的是Toms,因为Toms是一个声明函数,所有他有个默认的name属性就是他的函数名Toms,你现在alert Toms的name,弹出的是他的函数名Toms

高洛峰

你是把new Name 出来的对象赋给了其属性。而其本身本来就没有name这个东东嘛。console.log(Tom.moon.age)

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号