function test()
{
alert(Array.join.call(arguments,'/')) //alerts /
alert(Array.prototype.join.call(arguments,'/')) //alerts Js/JScript
alert(Array.join(arguments,'/')) //alerts Js/JScript
}
test('Js','JScript');
Run Code Online (Sandbox Code Playgroud)
为什么会有这种差异?为什么需要先引用原型?另外,为什么只有当连接只需要一个分隔符参数时,Array.join才会提供所需的结果.
小智 5
Array.join是一个全球性的职能.当使用电话,你传递的第一个参数是什么this物体内部的主体join功能,那么对于参数join的功能.
js> Array.join.call(null, [1, 2], "/")
"1/2"
Run Code Online (Sandbox Code Playgroud)
Array.prototype.join是为了实例Array.因此,它期望this是实际的数组,这就是你的第二个例子工作的原因.你的第二个例子相当于Array.prototype.join用this对象调用arguments,这正是arguments.join("/").有关说明,请参阅MDN.