@frilix
Иногда "творю"

Использование полей объекта в JS?

Доброго времени суток, при изучении и углублении в JS решил написать калькулятор, правда не очень сложный, но все же и столкнулся с проблемой: Uncaught ReferenceError: inputData is not defined.

// The main JS File
'use strict';

var action = {
  add: function(a, b) {
    return a + b;
  },
  substract: function(a, b){
    return a - b;
  },
  multiply: function(a, b){
    return a * b;
  },
  devide: function(a, b) {
    return a / b;
  }
}

var tablo = {
  statusLine: " ",
  tabloHtml: document.getElementById("calculator-result"),
  show: function(){
    tabloHtml.innerHTML = statusLine;
  },
  setLine: function(str){
    statusLine = str;
    this.show();
  },
}

var calculator = {
  calc_action: action,
  calc_tablo: tablo,
  inputData: 0,
  action: [],
  digit: [],
  addToData: function(value){
    this.inputData += parseFloat(value);
    this.calc_tablo.setLine(inputData);
    this.logArray("Add to Data:");
  },
  addData: function(value){
    this.inputData = parseFloat(value);
    this.calc_tablo.setLine(inputData);
    this.logArray("Add Data:");
  },
  clearData: function(){
    this.inputData = 0;
  },
  logArray: function(str){
    console.log(str);
    console.log(this.action);
    console.log(this.digit);
  },
}

// Listen Digit button
var listen =  function (){
  var buttonName = this.getAttribute("class");
  calculator.addToData(this.innerHTML);
}

window.onload = function(){
  var buttons = document.querySelectorAll('button')
  for (var i = 0; i < buttons.length; i++){
    buttons[i].addEventListener('click', listen, false);
  }
}


Буду признателен за объяснение почему, и как следует исправить.
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
О разметке приходится догадываться, но вот собрал кусок вашего "калькулятора"
Действительно в строке 39 есть this.calc_tablo.setLine(inputData); при этом inputData не объявлена.
C tabloHTML и statusLine похожая ситуация.

Вот так уже что-то нажимается, но мне кажется вы хотели какого-то другого поведения
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы