Closed PaulChess closed 2 years ago
如图所示,在调试 Data.prototype.splice 这个方法的过程中,我发现 const returnValue = newArray.splice.call(newArray, args) 的结果始终为 [],从注释上来看,这个方法期望返回的应该是修改后的新数组。所以现在得到的这个返回值是作者有意为之还是说确实是预期之外的呢。如果是预期之外的话是不是直接返回 newArray 就好了?我看反正是深拷贝过的。
Data.prototype.splice
const returnValue = newArray.splice.call(newArray, args)
[]
newArray
望空闲之余解惑,谢谢~~ @erik168
不好意思,我搞错了。当时光看 splice 方法我以为期望返回的是变更后的数组,也就是 raw 对象里对应的那个值。后来看了 pop 方法后我明白为啥要有这个 returnValue 了,打扰了!
splice
raw
pop
returnValue
在 API 设计上,和 JS Array 方法保持一致的哈。
如图所示,在调试
Data.prototype.splice
这个方法的过程中,我发现const returnValue = newArray.splice.call(newArray, args)
的结果始终为[]
,从注释上来看,这个方法期望返回的应该是修改后的新数组。所以现在得到的这个返回值是作者有意为之还是说确实是预期之外的呢。如果是预期之外的话是不是直接返回newArray
就好了?我看反正是深拷贝过的。望空闲之余解惑,谢谢~~ @erik168