中的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
推荐阅读
- JavaScript的OOPS继承 – JavaScript教程 – srcmini
- JavaScript的OOPS原型对象
- JavaScript的严格模式
- JavaScript的提升
- JavaScript调试
- JavaScript的this关键字
- JavaScript的删除一个Cookie
- JavaScript的Cookie
- JavaScript的OOPS抽象