永远不要使用Array.prototype.slice.call(arguments)!
在处理 arguments 对象时,永远不要写 Array.prototype.slice.call(arguments)。可以通过使用 Object.defineProperty(arguments.constructor.prototype, [functionName], {enumerable: false, configurable: true, value: [functionBody]}) 来代替,避免在迭代时引发混乱。使用 Object.getOwnPropertyNames(Array.prototype) 也能获取所有函数。虽然这个做法解决了一些问题,但 arguments 不应该被修改。这个问题的背景是,虽然解决了某些技术问题,但没有找到其他禁忌的原因。如果你知道更多信息,欢迎分享!此方法特别适用于使用 Object.defineProperty 的场景。
下载地址
用户评论