Javascript:将对象作为值存储在哈希中

标签 javascript javascript-objects

我对 JavaScript 很陌生,我不确定是否可以做到这一点。

我试图将图表对象(来自 Chartjs.org )存储为散列中的值,键是字符串。运行以下代码时,我收到一条错误消息“Object [object Object] has no method 'Line'”。

有什么建议吗?

var charts = {};

function drawChart(response, div_id){
  data = {
    labels: response.labels,
    datasets: [{...},{...}]
  };

  options = {...};


  var canvas = document.getElementById(div_id);
  var ctx = canvas.getContext("2d");

  if(!charts[div_id]){
    charts[div_id] = new Chart(ctx).Line(data, options);    
  }
  else{
    charts[div_id].Line(data, options);
  }
}

最佳答案

.Line() 很可能不会返回 Chart() 对象,因此在 else 部分中,您所做的相当于 Chart().Line().Line

尝试这样重写

  if(!charts[div_id]){
    charts[div_id] = new Chart(ctx);  
  }

  charts[div_id].Line(data, options);

关于Javascript:将对象作为值存储在哈希中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22922325/

相关文章:

javascript - Angularjs 根据存储在 session 存储中并存储在 $scope 中的变量动态显示/隐藏元素

javascript 添加函数脚本 - 有人能解释一下吗?

javascript - 如何使用对象属性的名称动态引用数组

Javascript - 实习生 - Windows 未定义

javascript - 从 Flex 调用 JavaScript

javascript - OpenLayers externalGraphic,图像地理配准

javascript - 在 iframe 中捕获所有 keyup/keydown 事件?

javascript - 重定向到新页面但记住原始位置

javascript - 使用函数向 JS 对象文字添加属性

javascript 如何创建对象数组