Ich versuche, push
auf einem Array zu überschreiben. Ich muss in der Lage sein, die ursprüngliche push
Methode vor dem Überschreiben aufzurufen, damit ich das Element auf das Array schieben kann.Aufruf der ursprünglichen Methode beim Überschreiben von Array-Push
Unten ist mein Code. Ich habe list.push
innerhalb der value
Methode hinzugefügt. Ich weiß, das ist falsch, aber ich habe es hinzugefügt, um zu zeigen, was ich versuche zu tun.
let list = [
'One',
'Two',
'Three'
]
Object.defineProperty(list, 'push', {
value: function(el) {
list.push(el) // I know this is wrong. Example of what I am trying to do.
}
})
Es ist eine schlechte Idee, eine native Methode, die beide an einem Prototyp oder auf instanziiert Objekte zu überschreiben – ftor
Könnten Sie bitte erklären, warum es eine schlechte Idee und was ist die Alternative? Hier ist der fertige Code: http://codepen.io/JamesTheHacker/pen/dXvdBb Ich entschied mich, 'push' zu überschreiben, denn nachdem ein Element zu einem Array geschoben wurde, wollte ich' push', um eine andere Methode aufzurufen. I.e. Feuern Sie ein Ereignis ab, wenn ein Gegenstand geschoben wird. Wenn Sie einen besseren, alternativen Ansatz haben, der ein "besserer" Weg ist, würde ich das gerne hören. Vielen Dank. – BugHunterUK
@ LUH3417 zögern Sie nicht zu beantworten: http://StackOverflow.com/Questions/38098876/Why-ISit-Abad-idea-to-Override-Native-Methods – BugHunterUK