有没有办法在javascript中获取对象原型函数的句柄,并保证这是有问题的对象?当我想将一个正确类型的对象数组映射到这样一个函数时,我特别得到了PITA的情况。这最终成了Window。是的,我确实从正确的位置拉出了函数本身,但在内部它指的是'this'。我知道电话和申请,但不知道如何使用它们来处理这种情况。
是否缺少显式循环而不是使用map?奇怪的是,显然它与
并没有做同样的事情object_with_the_prototype.some_prototype_function()
如果我有,会这样做
[object_with_the_prototype].map(this.some_prototype_function)
怎么回事?
答案 0 :(得分:0)
如果你的方法需要一个参数,那么它很容易。如果你需要多个参数,或者更重要的是,不是一个数字作为第二个参数(想想.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)
答案 1 :(得分:0)
我认为你正在寻找这个:
[object_with_the_prototype].map(function(thisObject) {
thisObject.some_prototype_function();
} );
答案 2 :(得分:0)
function do_one(element) {element.some_prototype_function()}
[object_with_prototype].map(do_one)