关于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的代码结构,这是不太适用的。