老师,我不太明白

老师,我不太明白

1、老师,我不太明白 ,函数_get是要得到什么数据?为什么后面还要设置2个方法进行调用呢?

2、怎么进行调用。我写着写着糊涂了。麻烦老师解释下

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


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>5-4</title>

</head>

<body>

<script>

    

//补充代码 

   function Student(){

       privateStore=new Object();

      function _set(name,sex,age){

          privateStore.name=name;

          privateStore.sex=sex;

           privateStore.age=age;

       }

       function _get(){

           return privateStore;

       }

       this.set=function(){return _set;}

       this.get=function(){return _get;}

   }

   

   var boy1=new Student("小明", "男", 23);

</script>

</body>

</html>


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

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

2回答
好帮手慕糖 2020-07-06 09:55:23

同学你好,可以理解为是加密的,因为是私有方法,外部是无法直接访问的。

祝学习愉快~

好帮手慕糖 2020-07-05 10:38:14

同学你好,关于你的回答如下:

1、用来获取私有属性privateStore中的信息哦。

2、这道题的重点就是将set和get方法使用this挂载到student的实例化对象上,_set和)_get方法直接使用function关键字声明。

 可以简单的理解为在函数中使用this定义的属性和方法, 实例化之后可以通过点(.)的当时访问到, 如果没有使用this定义的属相和方法可以理解为函数的局部属性和方法(私有的),外部不可以直接通过点的当时访问到

具体可以结合代码中的注释理解。


这道题的重点就是将set和get方法使用this挂载到student的实例化对象上,_set和)_get方法直接使用function关键字声明。

可以简单的理解为在函数中使用this定义的属性和方法, 实例化之后可以通过点(.)的当时访问到, 如果没有使用this定义的属相和方法可以理解为函数的局部属性和方法(私有的),外部不可以直接通过点的当时访问到

具体可以结合代码中的注释理解。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    // 1、创建一个构造函数student
    function student() {
        // student中使用字面式定义一个空对象privateStore,用来存放私有的数据。
        var privateStore = {
            name: "张宇",
            sex: "男",
            age: 18
        };
        // 2、 student中定义一个函数_set , 用来设置学生的信息 (姓名,性别和年龄) 。
        function _set(name, sex, age) {
            // 给privateStore这个对象添加学生信息
            privateStore.name = name;
            privateStore.sex = sex;
            privateStore.age = age;
        };
        // 3. student中定义一个函数_get , 用来获取信息 。
        function _get() {
            console.log(privateStore.name + " " + privateStore.sex + " " + privateStore.age);
        }
        // 4、student中定义一个方法set, 调用_set方法。
        this.set = function(name, sex, age) {
            // function set(name, sex, age) {
            // return _set;
            // 这里需要给_set方法传递参数,所以需要直接调用这个方法
            _set(name, sex, age)
        }
        // 5、 student中定义一个方法get ,方法中返回函数_get。
        this.get = function() {
            // function get() {
            return _get;
        }
    }
    // 6. 实例化对象student,
    var stu = new student();
    // 并调用set方法为student添加信息 。如 ( "小明", "男", 23 )
    // stu.set()("小明", "男", 23);
    stu.set("小明", "男", 23) // 直接调用set方法就可以了
    // 7.调用get方法即可。
    // stu.get();
    stu.get()()
    </script>
</body>
</html>

3、可以参考如上代码理解之后,再动手改写下自己的代码哦。

如果我的回答帮助了你,欢迎采纳,祝学习愉快~

  • 提问者 慕用6222994 #1
    感谢老师,非常详细,清晰。我明白了。 就是_set和_get是内部的,外部不能访问到。只能通过student的set和get属性进行信息添加和访问。老师我再问一个比较傻的问题 通过这样的操作是可以给里面_get和_set函数加密了吗?
    2020-07-06 07:08:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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