baidu / san

A fast, portable, flexible JavaScript component framework
https://baidu.github.io/san/
MIT License
4.73k stars 551 forks source link

关于调试源码过程中 Data.prototype.splice 方法中的一点疑惑 #729

Closed PaulChess closed 2 years ago

PaulChess commented 2 years ago
image

如图所示,在调试 Data.prototype.splice 这个方法的过程中,我发现 const returnValue = newArray.splice.call(newArray, args) 的结果始终为 [],从注释上来看,这个方法期望返回的应该是修改后的新数组。所以现在得到的这个返回值是作者有意为之还是说确实是预期之外的呢。如果是预期之外的话是不是直接返回 newArray 就好了?我看反正是深拷贝过的。

望空闲之余解惑,谢谢~~ @erik168

PaulChess commented 2 years ago

不好意思,我搞错了。当时光看 splice 方法我以为期望返回的是变更后的数组,也就是 raw 对象里对应的那个值。后来看了 pop 方法后我明白为啥要有这个 returnValue 了,打扰了!

errorrik commented 2 years ago

在 API 设计上,和 JS Array 方法保持一致的哈。