Safari Array indexOf无法找到任何内容

Mic*_*ael 2 javascript safari

当我在Safari 6.0中评估以下javascript时:

Array.indexOf([1,2,3],3)
Run Code Online (Sandbox Code Playgroud)

它返回-1,基本上说3不在数组中!

但在Firefox中它正确返回2.

我知道Array.indexOf是一个相对较新的函数,所以我有代码测试它是否存在,如果没有定义它.但是看起来这个功能内置于Safari中.

这是一个错误,还是我做错了什么?

编辑:这实际上是问题的简化版本.我实际上在做的是尝试在TR中找到TD单元的索引:

var tr = td.parentNode
var col = Array.indexOf(tr.cells,td)
Run Code Online (Sandbox Code Playgroud)

tr.cells没有indexOf.但是,使用Array.indexOf我可以这样对待它,至少在Firefox中.在Safari中,这不起作用.

我想在这种情况下我实际上可以使用cellindex,但如果没有定义,我将如何获取索引?

jAn*_*ndy 7

我想知道为什么你不按预期使用它:

[1,2,3].indexOf( 3 );
Run Code Online (Sandbox Code Playgroud)

除非这是一个学术问题.在这种情况下,它实际上是一个特殊的Firefox实现的bug.如果你想Array.prototype直接使用这个版本,你应该这样

Array.prototype.indexOf.call([1,2,3], 3);
Run Code Online (Sandbox Code Playgroud)