繁体   English   中英

将函数从obj传递到数组。 然后相加数组,但结果是NaN。 为什么?

[英]Passing function from obj into array. Then add up array but result is NaN. Why?

这是代码:

var myObject = {
  x: 5,
  h: function(){
     varOne = 2*2;
     varTwo = 3*2;
     varThree = varOne*varTwo;
     },
  d: 4
};

var g = myObject.h();
var xyz = g;
var abc = 2;
var efg = 3;
var somearray = [xyz,abc,efg];
var z =  0;
for(i=0; i<somearray.length; i++){
    z += somearray[i];   
}

结果是NaN。 为什么是这样? 如果我这样做:h:function(){return 2 * 2;},那么我没有问题。 我是JS的新手,我花了很多时间在互联网上搜寻无济于事的答案。 我是否需要使用parseInt或parseFloat,如果需要,我应将其应用于哪个变量? 提前致谢。

您没有从函数h返回任何值,因此它返回undefined,当添加结果为NaN时,请尝试:

h: function(){
   var varOne = 2*2;
   var varTwo = 3*2;
   return  varOne*varTwo;
 },

还可以考虑对范围内定义的变量使用var关键字,否则最终会污染全局变量。

由于您正在为变量分配数值,因此无需使用parseInt解析它们

暂无
暂无

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

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