Javascript 两个数相乘 returns NaN

Javascript multiplication of two numbers returns NaN

我更喜欢 C++ 和 Java 程序员,这是我第一次尝试用 javascript 做点什么。我有一个包含数组的对象,以及一个应该 return 该数组长度的函数。

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

现在我要做的是根据这个数组的大小调整 div 的大小。

我有

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

现在这行不通了。当我检查 typeof viewWidth 时,它 returned NaN。我还尝试了 "casting" 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();