這個(gè)地方有問題吧,people.prototype.getName 的修改依然會影響到MAN實(shí)例

weibo_彩虹AND天堂
2014-10-09
4 回答
舉報(bào)
0/150
提交
取消
2014-10-22
我聽到的貌似也是有問題的版本,不過既然大家其實(shí)都明確講師原本是啥意思,就沒關(guān)系了。
2014-10-18
講師的意思呢,是說 通過 man.prototype = new people; 這種方式進(jìn)行繼承之后,在man.prototype上對getName方法進(jìn)行修改,不會影響people.prototype上的同名方法
例如:
?function People (){
??this.name = 'frog';
??this.age = 29;
?}
?
?People.prototype.getName = function(){
??return this.name;
?}
?
?function Man(){
??? this.name = 'rat';
??? this.age = 3;
?}
?
?Man.prototype = People.prototype;
?//某一天,新來的小伙伴修改了這個(gè)方法
?Man.prototype.getName = function(){
??return this.age;
?}
?
//驗(yàn)下一下父類是否被子類改寫
?var p = new People;
?var n = p.getName();
?console.log(n); // 輸出29而不是 frog
?//說明直接用原開鏈,父類會被子類改寫
而Man.prototype = new People;
則父類原型鏈上的同名方法不會被改寫
因?yàn)檫@時(shí)Man.prototype上保存的只是People的實(shí)例,
而實(shí)例的修改,顯然是不會對它的類構(gòu)成影響的。
2014-10-18
講師的意思呢,是說 通過 man.prototype = new people; 這種方式進(jìn)行繼承之后,在man.prototype上對getName方法進(jìn)行修改,不會影響man.prototype.getName。
2014-10-10
確實(shí)會影響MAN的實(shí)例 這是個(gè)錯(cuò)誤