0
我想填充一個字典(JavaScript對象),並從它檢索值(自定義對象/類)使用字符串索引。然後,一旦我從字典中獲得值,我需要在這個對象上調用一個方法。不幸的是,這是行不通的,因爲一旦從字典中檢索它,它只是一個簡單的對象(typeof
返回「對象」)。調用從字典JavaScript對象檢索的對象上的方法
所以我試圖做的事情是投射到最初被推入字典中的對象類型,這是我的情況:google.visualization.Gauge
。 (Reference)
我試圖使用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);
}
}
沒有「setCell」法*在JavaScript中的所有*的對象是「只是簡單的對象」。 – Pointy
如果您在未嘗試投射的情況下直接調用對象,會收到什麼錯誤? – dSquared
我明白了,但是如何調用一個定義在*簡單對象*上的方法呢? – Kassem