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

Javascript 将函数从obj传递到数组中。然后将数组相加,但结果为NaN。为什么?,javascript,arrays,function,object,Javascript,Arrays,Function,Object,代码如下: 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

代码如下:

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];   
}
var myObject={
x:5,
h:函数(){
瓦隆=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;

对于(i=0;i您没有从函数
h
返回任何值,因此它返回未定义的值,当添加该值时,结果为NaN,请尝试:

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

还考虑在范围内定义的变量中使用<代码> var >代码>关键字,否则会导致全局性的污染。


由于您正在为变量分配数值,因此不需要使用
parseInt

解析变量,因为您没有从函数
h
返回任何值,因此它返回未定义的值,当添加该值时,结果为NaN,请尝试:

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

还考虑在范围内定义的变量中使用<代码> var >代码>关键字,否则会导致全局性的污染。


由于您将数值分配给变量,因此无需使用
parseInt

解析它们。使用更多描述性的变量名,会更容易理解。使用更多描述性的变量名,会更容易理解。耶!非常感谢!我觉得自己像个白痴。它工作得很好!@HST不用担心。如果您是满意的请记住标记答案。可以。我只是在等待,直到它让我在6分钟内完成。耶!非常感谢!我觉得自己像个白痴。它工作得很好!@HST无需担心。如果您满意,请记住标记答案。可以。我只是在等待,直到它让我在6分钟内完成。