這是父類Javascript的繼承可以這樣做嗎?它有效,但它是一個正確的方式?
function Person(name,age)
{
this.name = name;
this.age =age;
this.alertAge = function(){
alert(age)
};
this.alertName = function(){
alert(this.name)
}
this.setName = function(name){
this.name = name;
}
}
這是1級子類
function Student(name,age,id){
this.id = id;
Person.call(this,name,age);
}
這是級別2子類
function IStudent(name,age,id,children)
{
this.children = children;
Student.call(this,name,age,id)
}
這是1級子對象
let s1 = new Student('Jacob',21,1001);
console.log(s1)
這是2級子對象
let s2 = new IStudent('Jonathan',28,1002,1);
console.log(s2)
s2.setName('Ramoji');
console.log(s2)
我試圖瞭解什麼是錯誤的,如果我遺漏了原型鏈。例如:s2.setName函數在這裏工作正常。我能夠創建孩子並對它們進行實例化,調用父母函數等,這讓我感到困惑,因爲我認爲如果沒有原型鏈,這些都不會起作用。 –
你做了什麼工作,因爲你沒有在原型對象中聲明你的函數'setName','alertName'。事實上,你並沒有真正使用繼承,通過調用Person的構造函數,你只是使用關鍵字'this'來影響一些對象變量,僅此而已...... –
爲什麼這不是繼承?我想通過這樣做來理解我會想念的。在什麼時候我不會得到某種繼承特徵? –