JavaScript的OOPS封装

中的JavaScript封装是结合与作用于该数据的功能的数据(即变量)的处理。它使我们能够控制数据,并对其进行验证。为了实现在JavaScript封装: –

  • 使用var关键字来使数据成员专用。
  • 使用setter方法来设置数据和getter方法来获取数据。
封装允许我们使用以下属性来处理的对象:
读/写 – 在这里,我们用setter方法将数据写入和getter方法读取数据。
只读 – 在这种情况下,我们只使用getter方法。
只写 – 在这种情况下,我们只使用setter方法。
JavaScript的封装实例
让我们看到一个包含其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

JavaScript的封装实施例:验证
在这个例子中,我们验证了学生的痕迹。
< 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

JavaScript的封装实施例:基于原型的方法
在这里,我们执行基于原型的封装。
< 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>

【JavaScript的OOPS封装】输出:
John 80

    推荐阅读