Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript对象。。将可能的条目限制为两个?_Javascript_Json_Object - Fatal编程技术网

javascript对象。。将可能的条目限制为两个?

javascript对象。。将可能的条目限制为两个?,javascript,json,object,Javascript,Json,Object,在课堂上,我需要做一些javascripting。我有一个任务要做一个小脚本,在那里我做一个对象。我现在的问题是需要限制对象属性的可能值。 这是我的密码: var StudentObject = new Object(); var StudentStatus = new Object(); StudentStatus ={ betaald:true, inschrijvingOK:true } StudentObject = { status: StudentStatus,

在课堂上,我需要做一些javascripting。我有一个任务要做一个小脚本,在那里我做一个对象。我现在的问题是需要限制对象属性的可能值。 这是我的密码:

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”
,但这不是关键点