我無法正確覆蓋繼承的對象,並想知道我是否可以在這裏找到一隻手。已經被卡住了3天了。JS嵌套繼承
說
function Person() {
function getValue(){
serviceArea();
}
function serviceArea() {
alert('Old Location');
}
return {
getValue: getValue,
serviceArea: serviceArea
}
}
然後
function Student() {};
Student.prototype = new Person();
Student.prototype.serviceArea = function() { alert('New Location'); };
var bobStu = new Student();
當我運行bobStu.serviceArea();
我得到'New Location'
,但是當我運行bobStu.getValue();
我得到'Old Location'
我通過這個bobStu.getValue();
向下方法需要調用重寫的方法,但我無法做到這一點。你能解釋爲什麼getValue()
調用舊的serviceArea()
?以及如何正確地做到這一點?
我在這篇文章已經準備好了很多次,覺得這是告訴我的東西,但我太燒,我不能讓它:(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Introduction_to_Object-Oriented_JavaScript#Namespace
你的'Person'是一個工廠函數,不是一個經典的構造函數,它的範圍並不關心屬性。 – Bergi
你可能會在這個線程中找到答案http://stackoverflow.com/questions/12183011/javascript-redefine-and-override-existing-function-body有用。 – Rosa