繁体   English   中英

在从Dictionary JavaScript对象检索的对象上调用方法

[英]Calling a method on an object retrieved from Dictionary JavaScript object

我正在尝试填充字典(JavaScript对象)并使用字符串索引从中检索值(自定义对象/类)。 然后,一旦从字典中获取值,就需要在该对象上调用一个方法。 不幸的是,这是行不通的,因为一旦从Dictionary中检索到它,它只是一个简单的对象( typeof返回“ object”)。

所以我想做的就是将对象类型转换为最初推入字典的对象类型,在我的情况下为: google.visualization.Gauge 参考

我尝试使用Object.create,但对我不起作用。 下面是我的代码:

var _gauges = {};

var methods = {
    init: function (options) {

        var containers = this;

        if (containers != null && containers != undefined && containers.length > 0) {
            containers.each(function (index, elem) {

                var id = $(elem).attr('id');
                var name = $(elem).data('name');
                var value = $(elem).data('value');

                var data = google.visualization.arrayToDataTable([
            ['Label', 'Value'],
            [name, value]
                ]);

                var options = {
                    width: 400, height: 120,
                    redFrom: 90, redTo: 100,
                    yellowFrom: 75, yellowTo: 90,
                    minorTicks: 5
                };
                var cont = document.getElementById(id);
                var chart = new google.visualization.Gauge(cont);
                _gauges[name] = chart;
                chart.draw(data, options);
            });
        }

    },
    setValue: function (gaugeName, newValue) {
        var thisGauge = _gauges[gaugeName];
        if (thisGauge) {
            thisGauge.setCell(0, 1, newValue);
            //var tmp = Object.create(google.visualization.Gauge, thisGauge);
            //tmp.setCell(0, 1, newValue);
        }
    }

好,两件事:

  1. 如果这些“仪表”对象之一确实正确地放入了数组中,那么当您将其取回时,它就会毫发无损,您可以直接使用它。 无需“投射”。
  2. 根据您链接的文档,没有“ setCell”方法:-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM