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属性,但是这样做会有一些兼容性问题。:感谢您的关注