Javascript将对象方法映射到数组中的对象?

时间:2015-03-29 20:54:30

标签: javascript oop functional-programming

我知道如何使用myArray.map( fn )来应用整个数组的方法。

虽然它看起来很怪异和笨拙,但我想运行每个对象方法,并将参数作为自己。像

function MyObject(i) {
 this.i = i;
 this.internalMethod = function () {
     return this.i * 100
   }
}

function externalMethod(object){
   return object.i * 100
}

var objects = [new MyObject(3), new MyObject(-1), new MyObject(5)]
objects.map ( externalMethod ) // This works but
/// [300, -100, 500]

objects.map ( arrayElements.internalMethod )

1 个答案:

答案 0 :(得分:1)

将内部函数包装在匿名函数中,并将其传递给当前映射的对象。

JSFiddle

var newObj = objects.map(function(curr) {
    return curr.internalMethod()
});
console.log(newObj)
// [300, -100, 500]