javascript对象。。将可能的条目限制为两个?
在课堂上,我需要做一些javascripting。我有一个任务要做一个小脚本,在那里我做一个对象。我现在的问题是需要限制对象属性的可能值。 这是我的密码:javascript对象。。将可能的条目限制为两个?,javascript,json,object,Javascript,Json,Object,在课堂上,我需要做一些javascripting。我有一个任务要做一个小脚本,在那里我做一个对象。我现在的问题是需要限制对象属性的可能值。 这是我的密码: var StudentObject = new Object(); var StudentStatus = new Object(); StudentStatus ={ betaald:true, inschrijvingOK:true } StudentObject = { status: StudentStatus,
var StudentObject = new Object();
var StudentStatus = new Object();
StudentStatus ={
betaald:true,
inschrijvingOK:true
}
StudentObject = {
status: StudentStatus,
traject: "",
opleiding:"Toegepaste Informatica"
}
在对象“StudentObject”中,可以看到属性“traject”。这应该只能包含“MBT”或“PBT”。有简单的方法吗
提前感谢。您可以:
traject:function(x){(x=='MBT'||x=='PBT')?return x:return null;}
您可能可以执行以下操作:
traject:function(x){(x=='MBT'||x=='PBT')?return x:return null;}
没有办法限制javascript中公共对象属性可以包含的值,因为您已经定义了它 您可以使用访问器方法来获取和设置值,而不是属性本身,这些方法只能强制某些值。然后,您可以将实际数据存储在闭包中一个外部世界无法访问的地方,这样只有访问者才能访问它。如果要将访问器与专用存储一起使用,请参阅以了解实现专用实例变量的方法
function StudentObject(studentStatus, opleiding) {
// private instance variable, only available to code defined
// in the constructor
var traject = "";
// public methods
this.setTraject = function(val) {
if (val === "MBT" || val === "PBT") {
traject = val;
}
}
this.getTraject = function() {
return traject;
}
this.status = studentStatus;
this.opleiding = opleiding;
}
var studentStatus = {
betaald:true,
inschrijvingOK:true
}
var student = new StudentObject(studentStatus, "Toegepaste Informatica");
student.setTraject("PBT");
alert(student.getTraject()); // "PBT"
student.setTraject("xxx");
alert(student.getTraject()); // "PBT"
没有办法限制javascript中公共对象属性可以包含的值,因为您已经定义了它 您可以使用访问器方法来获取和设置值,而不是属性本身,这些方法只能强制某些值。然后,您可以将实际数据存储在闭包中一个外部世界无法访问的地方,这样只有访问者才能访问它。如果要将访问器与专用存储一起使用,请参阅以了解实现专用实例变量的方法
function StudentObject(studentStatus, opleiding) {
// private instance variable, only available to code defined
// in the constructor
var traject = "";
// public methods
this.setTraject = function(val) {
if (val === "MBT" || val === "PBT") {
traject = val;
}
}
this.getTraject = function() {
return traject;
}
this.status = studentStatus;
this.opleiding = opleiding;
}
var studentStatus = {
betaald:true,
inschrijvingOK:true
}
var student = new StudentObject(studentStatus, "Toegepaste Informatica");
student.setTraject("PBT");
alert(student.getTraject()); // "PBT"
student.setTraject("xxx");
alert(student.getTraject()); // "PBT"
要做到这一点,没有简单的方法:( 你可能需要检查一下 及 和 代码:
要做到这一点,没有简单的方法:( 你可能需要检查一下 及 和 代码:
你本可以用英语替换你的区域设置文本;更具可读性的方式抱歉,我只是复制粘贴了它。你本可以用英语替换你的区域设置文本;更具可读性的方式抱歉,我只是复制粘贴了它。我会简化字符串检查,以了解@jfriend00在他的答案中所做的事情。@Pavlo我可能误解了
应该打开我可以包含“MBT”或“PBT”
,但这并不是关键点,我会简化字符串检查,以了解@jfriend00在他的答案中所做的事情。@Pavlo我可能误解了应该只能包含“MBT”或“PBT”
,但这不是关键点