【发布时间】:2014-11-02 23:02:30
【问题描述】:
我有一个全局变量:
var chart;
创建图表的函数:
function setChart(variableName, chartContainer){
variableName = new CanvasJS.Chart(chartContainer, {**params**});
variableName.render();
};
我调用 setChart
setChart(chart, "chartContainDiv");
如果我稍后再拨打chart.render();,它就不起作用了。
我怎样才能做到这一点? / 我误会了什么?
【问题讨论】:
-
您误解了 JavaScript 的工作原理;你不能那样做。如果您想按名称引用变量,最接近的等效方法是创建一个对象并按名称引用其属性。
-
那是相当的编辑。在任何情况下,问题都是一样的——您正在设置一个函数本地的变量。如果您需要多个实例,请使用一个对象,就像我已经说过的那样。如果您需要单个实例,则只需使用全局。
-
您对传递by value and passing by reference 感到困惑。当您将
chart传递给setChart时,您无法为其分配值,因为您没有传递它的引用,而是传递了它的值(在您的示例中为undefined)。 -
@DaveNewton 我知道,对不起,我正经历着这样的日子。
-
@AlexW 好的,所以如果我想执行上述操作,以便我可以使用 setChart 函数创建几个不同的图表,我该怎么做?
标签: javascript