你的位置:首页 > Java教程

[Java教程]ECMA5数组的新方法forEach()模仿实现

 1    var o = { 2       forEach: function (callback) { 3        // alert(this.length); 4         for (var i = 0, len = this.length; i < len; i++) { 5           callback && callback(this[i], i, this); 6         } 7       }, 8       get length(){ 9         var sum=0;10         for(var n in this) {11           sum+=1;12         }13         return sum;14       }15 16     };17     Object.defineProperty(o,"length",{enumerable:false});18     Object.defineProperty(o,"forEach",{enumerable:false});19     o[0] = 0;20     o[1] = 1;21     o[2] = 2;22 23     o.forEach(function(v,i,arr){24       arr[i]=v+1;25       console.log(arr[i]+"callback");26     });

值得注意的是:

1.回调函数的使用

2.

defineProperty以及defineProperties函数的意义
这两个函数都可以定义对象属性的四大特性--值,可写性,可枚举性,可配置性