【问题标题】:Get variable from object method in javascript从javascript中的对象方法获取变量
【发布时间】:2011-07-30 05:41:05
【问题描述】:

我是 javascript 中的对象的新手,我在使用以下代码时遇到了一些问题。

var Color = function(color){
   this.color = color;
   this.getCode = function(){
      var colorHex;
      var colorRBG;
      switch(color){
          case "White":
              colorHex = "#ffffff";
              colorRGB = "255,255,255";
              break;
          case "Black":
              colorHex = "#000000";
              colorRGB = "0,0,0";
              break;
          default:
              return false;
      }
      return {
          colorHex: colorHex,
          colorRGB: colorRGB
      }
   }
}

我想要做的是像这样获取 colorHex 值,但它不起作用:

var newColor = new Color("White");
alert(newColor.getCode().colorHex);

我做错了什么?

【问题讨论】:

  • 正在工作,jsfiddle.net/JQYED/1 在 Chrome 中
  • 这是我实际应用的简化版。也许我在某个地方还有另一个错误,因为我在我的应用程序中不断得到一个“未定义”的值。

标签: javascript jquery variables object return


【解决方案1】:

你需要switch(this.color)

【讨论】:

    【解决方案2】:

    您需要在 switch 语句中使用this.color 而不是颜色。此处的颜色未定义,将调用默认情况。

    颜色(参数)不再在范围内,因此您需要访问成员变量。 Javascript 不会像其他语言那样自动添加它,您必须手动完成。

    【讨论】:

    • 我试过了,但我不断收到“未定义”...我将在下面发布代码。
    • 真的吗?您可以尝试:newColor.getCode.call(newColor) 破解它。将switch(color) 更改为switch(this.color) 应该可以工作...
    • 我刚收到!我将“colro”而不是“color”的值传递给函数,这就是原因。我没有看到它,这让我发疯了。顺便说一句,在 switch 语句中只使用“颜色”就可以正常工作。
    猜你喜欢
    • 2021-12-01
    • 2012-11-06
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    • 2021-03-03
    相关资源
    最近更新 更多