老师,这样可以吗?

来源:5-4 编程练习

qq_圆方_0

2021-02-08 20:52:57


        function student(){


        var private=new Object()


        this._set=function(name,sex,age){

            private.name=name

            private.sex=sex

            private.age=age

        }

        this._get=function(){

            for(var k in private){

                console.log(k+'  '+private[k])

            }

        }

        

    } 

    

    var obj=new student()

    console.log(obj._set('张宇','girl',18));

    console.log(obj._get());


写回答

1回答

好帮手慕久久

2021-02-09

同学你好,解答如下:

1、这样写可以,但是与任务要求不太符,任务要求是想让大家封装两个内部方法_set和_get,然后再定义两个方法get、set供外部使用。即get、set方法是对外的,而_set和_get是不对外的。因此,可以如下这样调整一下:

http://img.mukewang.com/climg/6021e8da09d8ff7509010787.jpg

2、同学的写法中,页面会打印两个undefined:

http://img.mukewang.com/climg/6021e935097805d405260227.jpg

原因是_set、_get方法本身并没有使用return 这个关键词返回内容,默认会返回undefined,所以console它们的返回值,会打印undefined:

http://img.mukewang.com/climg/6021e9a109d599d607510180.jpg

建议直接调用,不打印,如下:

http://img.mukewang.com/climg/6021e9c8097b76af06700271.jpg

祝学习愉快!


1
hq_圆方_0
hp>不亏是老师,一下子解决我好几个问题

h021-02-09
共1条回复

0 学习 · 14456 问题

查看课程