javascript foo.call(object)与object.foo()

Sag*_*fek 4 javascript jquery

我正在寻找jQuery源代码然后我看到他们使用foo.call(context)而不是context.foo().
例如 - 假设this是他们使用的数组:

return slice.call( this );
Run Code Online (Sandbox Code Playgroud)

代替:

return this.slice();
Run Code Online (Sandbox Code Playgroud)

有什么区别,是否是这些电话的首选方式(在性能方面)?

Poi*_*nty 6

问题是"foo"实际上可能不是"上下文"的属性.在这种情况下,唯一真正的选择是使用.call()(或.apply()酌情).

如果你有一个具有"foo"属性的对象是一个函数,那么没有真正的理由可以使用.call().