我正在尝试覆盖对象的方法,但仍使用Object.getPrototypeOf()
. 这在第一次时效果很好,但是如果该方法被多次覆盖,则会出现问题。
此代码导致堆栈溢出:
A =
{
blurg: function()
{
puts('hey there')
}
}
B = (function buildB(){
var obj = Object.create(A)
obj.blurg = function()
{
Object.getPrototypeOf(this).blurg.apply(this, arguments)
puts('hai!!!!')
}
return obj
})()
b = (function buildb(){
var obj = Object.create(B)
obj.blurg = function()
{
Object.getPrototypeOf(this).blurg.apply(this, arguments)
puts('bye bye')
}
return obj
})()
b.blurg()
问题是我想用当前对象调用原型的方法this
。当该方法执行相同操作时,这会导致问题。
我会以错误的方式解决这个问题吗?有没有办法创建一个辅助函数来确保正确的原型被拉起?我有点不知所措。