正在回答
同学你好,这样是为了信息的安全性。具体参考如下理解
1.使用this定义属性,实例化构造函数的时候(即 new student),会被实例化对象继承。通过实例化对象就能随意访问信息。
2.在构造函数中定义一个对象privateStore,函数内部的变量无法在外部访问,也不会被实例化对象继承。所以通过privateStore.name给对象添加的属性,外部也自然访问不到,保障了信息的安全性。当我们想要让外部访问的时候,就通过return把信息返回。
同学尝试做一做,如果做到哪里不会了,可以把自己的代码都粘贴上来,老师会为你指导。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
同学你好,问题解答如下:
1.是把对象放在如下函数里面吗?肯定是不对的,在前面的作用域课程中学到过,函数内部的定义的变量或者函数,在函数外部拿不到。如果把privateStore定义在函数_set中,那么 _get函数中使用privateStore时会报错。
会报错,不要放在_set中:
2.同学的意思是说去掉this定义的属性,只留上面的两个函数吗?这样肯定是不对的,原因如下:
函数内部定义的函数或者变量属于局部变量与函数,只能在student内部使用,外部拿不到的。也不会被实例化对象继承的。所以同学说的a._set('小明','男',23) 不对,局部函数不能被实例化对象调用。
而通过this定义的属性或者方法,因为this指向的是实例化对象,所以构造函数中通过this定义的属性或者方法才能够被实例化对象调用。可参考如下图解:
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星