我更多地是C ++和Java程序员,这是我第一次尝试使用javascript做某事。我有一个持有一个数组的对象,以及一个应该返回该数组长度的函数。

    var graphData = {
       labels : ["label1", "label2", "label3"],
       numData : function() {
          return (Number(this.labels.length));}
       }


现在我想做的就是根据此数组的大小来调整div的大小。

我有

    var barWidth = 13;
    var viewWidth = barWidth * graphData.numData;


现在,这是行不通的。当我检查typeof viewWidth时,它返回NaN。我也尝试将操作数“投射”到Number(),但是没有用。我究竟做错了什么?

最佳答案

您必须将函数调用为graphData.numData()而不是graphData.numData,因为它不是属性,这将解决问题。

var graphData = {
   labels : ["label1", "label2", "label3"],
   numData : function(){return +(this.labels.length);}
}

var barWidth = 13;
var viewWidth = barWidth * graphData.numData();

10-08 00:05