JavaScript封装是将数据(即变量)与作用于该数据的函数绑定在一起的过程。它使无涯教程能够控制数据并进行验证。在JavaScript中实现封装:-
封装可以使用以下属性来处理对象:
读/写 - 在这里,使用setter方法写入数据,而getter方法读取数据。
只读 - 在这种情况下,仅使用getter方法。
仅写 - 在这种情况下,仅使用setter方法。
看一个简单的封装示例,其中包含两个带有setter和getter方法的数据成员。
<script> class Student { constructor() { var name; var marks; } getName() { return this.name; } setName(name) { this.name=name; } getMarks() { return this.marks; } setMarks(marks) { this.marks=marks; } } var stud=new Student(); stud.setName("John"); stud.setMarks(80); document.writeln(stud.getName()+" "+stud.getMarks()); </script>
输出:
John 80
在此示例中,验证学生的分数。
<script> class Student{ constructor() { var name; var marks; } getName() { return this.name; } setName(name) { this.name=name; } getMarks() { return this.marks; } setMarks(marks) { if(marks<0||marks>100) { alert("Invalid Marks"); } else { this.marks=marks; } } } var stud=new Student(); stud.setName("John"); stud.setMarks(110);//alert() invokes document.writeln(stud.getName()+" "+stud.getMarks()); </script>
输出:
John undefined
在这里,无涯教程执行基于原型的封装。
链接:https://www.learnfk.comhttps://www.learnfk.com/javascript/javascript-oops-encapsulation.html
来源:LearnFk无涯教程网
<script> function Student(name,marks) { var s_name=name; var s_marks=marks; Object.defineProperty(this,"name",{ get:function() { return s_name; }, set:function(s_name) { this.s_name=s_name; } }); Object.defineProperty(this,"marks",{ get:function() { return s_marks; }, set:function(s_marks) { this.s_marks=s_marks; } }); } var stud=new Student("John",80); document.writeln(stud.name+" "+stud.marks); </script>
输出:
John 80
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)