如何访问Javascript对象';在forEach或for迭代中的成员

如何访问Javascript对象';在forEach或for迭代中的成员,javascript,Javascript,我有一个名为numObj的对象,我创建了一个包含numObj对象数组的numArrary。 当我尝试使用foreach调用其内部成员时,结果是无法使用。为什么 var numObj = function (num) { return { num:num } } var numArray = []; for (var i = 0; i < 3; i++) { numArray[i] = nu

我有一个名为numObj的对象,我创建了一个包含numObj对象数组的numArrary。 当我尝试使用foreach调用其内部成员时,结果是无法使用。为什么

   var numObj = function (num) {
        return {
            num:num
        }
    }
    var numArray = [];
    for (var i = 0; i < 3; i++) {
        numArray[i] = numObj(i);
    }
    numArray.forEach(
        function () {
            alert(this.num); //undefined
        }
    );
var numObj=函数(num){
返回{
num:num
}
}
var numArray=[];
对于(变量i=0;i<3;i++){
Numaray[i]=numObj(i);
}
努马拉·弗雷奇(
函数(){
警报(this.num);//未定义
}
);

此外,当我获得更深层次的内部对象时,我失去了与任何想法相比的智能感知?

条目作为第一个参数传递给
forEach
迭代器,因此:

numArray.forEach(
    function (obj) {    // Declare the argument
        alert(obj.num); // Use it
    }
);
不要对条目使用
this
(例如,jQuery的类似函数就是这样做的)。

尝试以下方法:

  var numArray = [{1:1},{2:2}];


   numArray.forEach(function(value,index){
         console.log(value,index,this);//{1:1},0 window
   });
-指窗口


我真的这么想吗?你不想使用
for(numArray中的numObj)
表单吗?@shishirmk:是的,它实际上是JavaScript。@user:“我有一个名为numObj的对象”你想,是的,尽管大多数人会称它为函数。(它也是一个对象,因为JavaScript函数是对象,但是…@T.J.Crowder感谢您刚刚在CDT控制台中尝试过它。我根本不知道这种格式。@shishirmk:不用担心。:-)“我不知道这个格式……”嗯,语法上没有任何变化(OP只是有一个稍微不寻常的换行方法,但是非常清晰易读)
forEach
只是数组上的一个函数,由ES5添加。感谢Crowder,对于(b中的a)表达式如何?@user1978421:in的
for循环迭代对象的可枚举属性。由于各种原因,这通常不是循环遍历数组内容的最佳方式。更多的在和。