【发布时间】:2012-06-23 19:42:40
【问题描述】:
我在 CoffeeScript 中使用以下代码:
if elem in my_array
do_something()
编译成这个javascript:
if (__indexOf.call(my_array, elem) < 0) {
my_array.push(elem);
}
我可以看到它正在使用在脚本顶部定义的函数 __indexOf。
我的问题是关于这个用例:我想从数组中删除一个元素,并且我想支持 IE8。在array 对象上支持indexOf 的浏览器中,我可以使用indexOf 和splice 轻松做到这一点。但是,在 IE8 中这不起作用:
if (attr_index = my_array.indexOf(elem)) > -1
my_array.splice(attr_index, 1)
我尝试使用 CoffeScript 定义的 __indexOf 函数,但在编译器中出现保留字错误。
if (attr_index = __indexOf.call(my_array, elem) > -1
my_array.splice(attr_index, 1)
那么我该如何使用 CoffeScript 或者是否有更不显眼的方法来调用 indexOf? 两次定义同一个函数似乎很奇怪,只是因为 CoffeeScript 不允许我使用他们的...
【问题讨论】:
标签: javascript arrays internet-explorer-8 coffeescript