我贴我在那里压倒一切的问题push使用Object.defineProperty.原来的问题在这里.我正在处理的代码是在我的codepen上.
用户留下以下评论:
在原型或实例化对象上覆盖本机方法是个坏主意
为什么?
我决定覆盖的原因push是因为我需要push在推送元素后调用另一个方法.我没有改变push的功能,只是让它在完成时触发事件.
做我做的事情是不好的,如果有的话,还有什么选择呢?
我能想到的一个问题是,现在你有一个非常特定于你的问题的推送方法,如果你以后需要普通的推送方法会怎样.您实际上并不知道是否会出现这种情况,但可能会导致您以后必须重构代码,以允许"正常推送"和"更改推送".
我能想到的另一个问题是,如果你做了这样的事情并且你并不是唯一一个处理代码的人,那么其他人可能不知道push被覆盖并且不再遵循标准行为.
这可能会导致潜在的问题.你可能没有经常改变它,但是如果你所做的改变导致错误,你可能会让别人挠头想知道为什么(在他看来正常)推动导致奇怪的行为.