我在 CoffeeScript 中使用以下代码:
if elem in my_array
do_something()
编译成这个javascript:
if (__indexOf.call(my_array, elem) < 0) {
my_array.push(elem);
}
我可以看到它正在使用脚本顶部定义的函数 __indexOf。
我的问题是关于这个用例:我想从数组中删除一个元素,并且我想支持 IE8。我可以在支持对象的浏览器indexOf
中轻松做到这一点。但是,在 IE8 中这不起作用:splice
indexOf
array
if (attr_index = my_array.indexOf(elem)) > -1
my_array.splice(attr_index, 1)
我尝试使用__indexOf
CoffeScript 定义的函数,但在编译器中出现保留字错误。
if (attr_index = __indexOf.call(my_array, elem) > -1
my_array.splice(attr_index, 1)
那么如何使用 CoffeScript 或者有没有更隐蔽的方法来调用 indexOf?两次定义相同的函数似乎很奇怪,只是因为 CoffeeScript 不允许我使用他们的......