【问题标题】:How to call javascript variables which is "like class" [duplicate]如何调用“类似类”的javascript变量[重复]
【发布时间】:2013-12-09 07:26:44
【问题描述】:

我有这样的课:

label = 
{
   car1 = "Chevrolet Camaro",
   car2 = "Ford Mustang",
   car3 = "Dodge Challenger"
}

当我需要获取标签时,我使用这种方法:

function getLabel(name)
{
   switch (name.ToLowerCase())
   {
      case "car1":
         return label.car1;
         break;
      case "car2":
         return label.car2;
         break;
      case "car3":
         return label.car3;
         break;
   }
}

这个函数对于几行是可以的,但是如果我有这么多行,有什么方法可以处理这个吗?有没有类似的方法:

function getLabel(name)
{
   text = name.ToLowerCase();
   return label.text;
}    

非常感谢。

【问题讨论】:

  • 是变量label是一种json?格式是什么?
  • 使用括号表示法:return label[ name.toLowerCase() ];
  • 你确定不是label = { car1 : "Chevrolet Camaro",

标签: javascript class variables call


【解决方案1】:

您可以使用这样的字符串访问对象的成员:

function getLabel(name)
{
   var text = name.ToLowerCase();
   return label[text];
}    

进一步阅读

【讨论】:

    【解决方案2】:

    您可以创建一个汽车对象以便轻松获取它的属性,如下所示:

    function carObj(label, name){
      this.label = label;
      this.name = name;
    }
    
    var cars = new Array(
            new carObj('car1','Chevrolet Camaro'),
            new carObj('car2','Ford Mustang'),
            new carObj('car3','Dodge Challenger')
            );
    
    function getCarName(label){
       for(var i = 0; i < cars.length; i++){
           if(cars[i].label == label){
              return cars.name;
           }
       }
       return '';
    }
    

    【讨论】:

    • "for" 循环会让速度变慢
    • 这是一个例子。我的意思是提到在 javascript 中创建一个对象。
    猜你喜欢
    • 2020-11-09
    • 2017-10-05
    • 2022-01-07
    • 2018-07-04
    • 2015-03-02
    • 2018-04-12
    • 1970-01-01
    • 2021-07-08
    • 2020-06-10
    相关资源
    最近更新 更多