Получить переменную из метода объекта в JavaScript - PullRequest
0 голосов
/ 05 апреля 2011

Я новичок в объектах в 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);

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Вам нужно использовать this.color вместо цвета в вашем операторе switch.Здесь цвет будет неопределенным, и будет вызываться регистр по умолчанию.

Цвет (параметр) больше не находится в области видимости, поэтому вам необходимо получить доступ к переменной-члену.Javascript не делает этого автоматически, как это делают другие языки, вы должны сделать это вручную.

1 голос
/ 05 апреля 2011

нужно switch(this.color)

...