为什么构造函数的遍历方法是一个函数体?

为什么构造函数的遍历方法是一个函数体?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

</head>

<body>

    <script type="text/javascript">  

// var ren={

//     name:'zhangsan',

//     age:'18',

//     len:'180',

//     demo:function(){

//         alert(this.name);

//     }

// }

// for(var i in ren){

//     alert(ren[i]);

// }    

// 

function Ren(name,age,len){

    this.name=name;

    this.age=age;

    this.len=len;

    this.demo=function(){

        alert(this.name);

    }

}

var Object=new Ren('zhangsan','18','180');

for(var i in Object){

    alert(Object[i]);

}

</script>


</body>

</html>


正在回答 回答被采纳积分+1

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

2回答
好帮手慕星星 2019-06-11 09:51:38

你好,可以看一下Object对象中的内容:

http://img1.sycdn.imooc.com//climg/5cff08970001265606410158.jpg

里面是包括demo方法的。

而在代码中通过for  in循环对象:

http://img1.sycdn.imooc.com//climg/5cff08ba0001dafd03370132.jpg

弹出来的就是Object对象中每一个属性值,所以demo弹出来的是function函数体,方法没有调用,所以不能执行里面的代码。

如果想要执行demo方法,需要单独调用,如下:

http://img1.sycdn.imooc.com//climg/5cff09230001fc3206450225.jpg

自己输出测试下,祝学习愉快!

好帮手慕星星 2019-06-10 15:54:30

你好,实例化出来的Object对象中有demo方法,所以最后弹出来的是一个函数体。把demo方法去掉就没有了,自己可以测试下。

祝学习愉快!

  • 提问者 宗桦 #1
    什么意思,还是不理解把demo方法去掉就没有了,demo方法去掉不是就弹不出alert了吗?
    2019-06-10 23:02:12
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

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

在线咨询

领取优惠

免费试听

领取大纲

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