3

我正在使用 CoffeeScript 和 JS 拼接函数。我对JS拼接函数的理解是应该返回拼接出来的对象,修改原来的数组。这似乎适用于简单的数组,但是当我开始向数组中添加对象时,事情就会崩溃。下面是一个带有注释的简化案例:

和一个链接代码

#Class that will go in array
class Thing
  do: ->
    alert "Hi"

a = new Thing
b = new Thing

arr = []

arr.push(a)
arr.push(b)

arr[0].do()  # this works

result = arr.splice(0,1)
alert result.do()  # this does not work

splice 是否做了一些使这不起作用的事情?如果有人知道发生这种情况的原因和/或解决方法,我将不胜感激,

4

2 回答 2

4

Array.splice()返回已删除元素的数组;因为它有可能通过第二个参数删除多个:

因此,您应该使用alert result[0].do();

工作示例:http://jsfiddle.net/Cjtaa/

于 2012-03-30T16:36:13.373 回答
1

splice返回一个array.

所以你需要这样做:

result = arr.splice(0,1)
alert result[0].do() 
于 2012-03-30T16:37:23.160 回答