Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 何时使用访问器属性_Javascript_Oop - Fatal编程技术网

Javascript 何时使用访问器属性

Javascript 何时使用访问器属性,javascript,oop,Javascript,Oop,通常,要访问对象的属性,请更改其值并接收结果,我使用此语法。 <script type="text/javascript"> var student={ lastExam:null, setExam:function(es){ this.lastExam=es }, getExam:function(){return this.lastExam}, } student.setExam('Math') co

通常,要访问对象的属性,请更改其值并接收结果,我使用此语法。

<script type="text/javascript">
 var student={
      lastExam:null,
      setExam:function(es){
         this.lastExam=es
      },
     getExam:function(){return this.lastExam},
  } 
  student.setExam('Math')
  console.log(student.getExam())
</script>

var学生={
上次考试:空,
setExam:功能(es){
此.lastExam=es
},
getExam:function(){返回this.lastExam},
} 
学生考试(“数学”)
console.log(student.getExam())
但是,为了得到相同的结果,我可以在代码中使用访问器属性

<script type="text/javascript">
 var student={   
     lastExam:null,
     set Exam(es){
       this.lastExam=es
     },
     get Exam(){return this.lastExam},
   } 
  student.Exam='Math'
  console.log(student.Exam)
</script>

var student={
上次考试:空,
集合考试{
此.lastExam=es
},
get-Exam(){返回此.lastExam},
} 
学生,考试是数学
控制台日志(学生考试)
虽然我读了一些关于这个主题的帖子(,ecc…),但我仍然不理解一些概念。
我的问题是:
当使用解决方案或其他更方便时。

使用这两种解决方案的含义是什么。

第一个示例可以在ECMAScript 3和5中执行,第二个示例只能在支持ECMAScript 5的浏览器中执行

Accesor属性非常奇特,在这种情况下它们工作得更好,但是一些用户可能无法在浏览器中运行此代码。 第一个示例在任何地方都可以运行,尽管使用起来更繁琐


你会听到“accesor属性只能由制作库的人使用”。当然这不是真的,我们都可以使用accesor属性,但是这样做会有一些兼容性问题。

:感谢您的关注