Javascript 如何将原型函数映射到具有该原型的对象数组?

Javascript 如何将原型函数映射到具有该原型的对象数组?,javascript,Javascript,在javascript中,有并没有一种方法可以在对象原型函数上获得一个句柄,并保证它就是所讨论的对象?当我想要将一个适当类型的对象数组映射到这样一个函数时,我特别遇到了PITA情况。这最后成了一个窗口。是的,我确实从正确的位置提取了函数本身,但在内部它引用了“this”。我知道call and apply,但不知道您如何使用它们来处理这种情况 有没有办法不使用map而使用显式循环?奇怪的是,它显然没有做同样的事情“这”作为 object_with_the_prototype.some_proto

在javascript中,有并没有一种方法可以在对象原型函数上获得一个句柄,并保证它就是所讨论的对象?当我想要将一个适当类型的对象数组映射到这样一个函数时,我特别遇到了PITA情况。这最后成了一个窗口。是的,我确实从正确的位置提取了函数本身,但在内部它引用了“this”。我知道call and apply,但不知道您如何使用它们来处理这种情况

有没有办法不使用map而使用显式循环?奇怪的是,它显然没有做同样的事情“这”作为

object_with_the_prototype.some_prototype_function() 
如果我有,我会做的

[object_with_the_prototype].map(this.some_prototype_function)

为什么会这样?

如果您的方法需要一个参数,那么就很容易了。如果您需要多个参数,或者更重要的是,不是一个数字作为第二个参数(think.toString),则可以使用bind将其转换为第一个参数:

"a,b,c".split(",").map( Function.call.bind(  "".big  )  );
在代码中:

[object_with_the_prototype]
  .map( Function.call.bind( thisObject.some_prototype_function ) );

如果您的方法调用像x(a,b,c)这样的函数,那么绑定函数调用像x(this,a,b,c)

我想您正在寻找这样的函数:

[object_with_the_prototype].map(function(thisObject) {
    thisObject.some_prototype_function();
} );

啊,我看到了。问题是,在数组的情况下,我错误地假设,虽然我给了对象一个显式的映射函数,但从对象到其原型链的正常行走会发生。我通过定义一个函数,从数组中提取一个元素,并通过该元素调用所需的原型函数来修复它。我将映射到该函数

function do_one(element) {element.some_prototype_function()}
[object_with_prototype].map(do_one)

这不允许你传递任何参数,如果你不需要的话,为什么要输入“return”…哦。这看起来很有用。谢谢