Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/147.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
关于switch case的快速javascript帮助_Javascript - Fatal编程技术网

关于switch case的快速javascript帮助

关于switch case的快速javascript帮助,javascript,Javascript,嘿,基本上我想知道是否有可能把一个对象的属性作为开关的条件。像这样的 function Person (age,name){ this.age = age this.name = name } var person1 = new Person(22,"Ken") var person2 = new Person(42,"Ben") var person3 = new Person(62,"Len") switch(the attribute here lets say it was ag

嘿,基本上我想知道是否有可能把一个对象的属性作为开关的条件。像这样的

function Person (age,name){
this.age = age
this.name = name
 }

var person1 = new Person(22,"Ken")
var person2 = new Person(42,"Ben")
var person3 = new Person(62,"Len")


switch(the attribute here lets say it was age for example){


case person1: Do something;    Basically age for person1 do this age for person 2 do this etc.
break;
case person2: Do something;
break;
case person3: Do something;
break;
}

抱歉,如果不清楚的话,我是javascript新手,我想知道这类事情是否可能发生。

我想你想做的是:

function Person (age,name){
    this.age = age;
    this.name = name;
}

 var person1 = new Person(22,"Ken");
 var person2 = new Person(42,"Ben");
 var person3 = new Person(62,"Len");
 switch(person.age){
     case 22:
        alert("the person is " + person.name);
        break;
     case 42:
        //do something here;
        break;
     default:
        //do something default;
        break;
 }
您当然可以将对象的属性放入switch/case条件,因为它与其他变量一样,所以为什么不呢。

试试:

switch(this.age){
  case x:
}
表示父对象。因此,如果我说this.age,它表示父对象的年龄,而不需要指定年龄。

此外,您可以执行以下操作:

function Person(age, name) {
  this.age = age;
  this.name = name;
}

var person1 = new Person(22, "Ken");
var person2 = new Person(42, "Ben");
var person3 = new Person(62, "Len");

var person, people = [person1, person2, person3];
while (p = people.shift()) {
  console.log("Q: Do you think " + p.name + " is old?");
  console.log("A: " + isOld(p));
}

function isOld(person) {
  switch(true) {
    case person.age < 40:
      return "Not at all.";
    case person.age < 60:
      return "I prefer not to comment.";
    default:
      return "Who? The grandpa?";
  }
}
职能人员(年龄、姓名){
这个。年龄=年龄;
this.name=名称;
}
var person1=新人(22,“肯”);
var person2=新员工(42,“本”);
var person3=新员工(62,“Len”);
变量person,people=[person1,person2,person3];
while(p=people.shift()){
log(“问:你认为“+p.name+”是旧的吗?”);
控制台日志(“A:+isOld(p));
}
功能隔离(个人){
开关(真){
病例人年龄<40岁:
返回“一点也不”;
年龄<60岁的患者:
return“我不想发表评论。”;
违约:
返回“谁?爷爷?”;
}
}

如果它有一个右值,您可以测试它。但不是你的代码看起来的样子。年龄你不能测试父母,那不是右值。要旋转你的物体,你需要将它们放入一个数组中,循环并测试它们的年龄。是的,谢谢,我不得不使用一个循环。我没有想到这一点。谢谢你的回答,这不是我想要的,但我甚至不知道你能做到这一点!学点东西总是很棒的知道这真的有用吗?在那个特定的情况下,这到底意味着什么?我假设他知道
这个
,因为在原始代码中使用了它-但是我会编辑它来做一个解释。如果你想使用
这个
,那么代码块应该在实例的方法中。根据asker的代码结构,这是不太适用的。