js對象繼承
阿新 • • 發佈:2017-05-28
blog for 方法 call fun for in () pre prot
一般繼承是出現的問題
function people(name,sex){ this.name=name; this.sex=sex; } people.prototype.showname=function(){ alert(this.name); } function student(name,sex,job){ people.call(this,name,sex); this.job=job; } student.prototype = people.prototype;//對象賦給對象,就會出現對象的引用,如果子類原型添加一個方法,父類就會受影響 var p1=new people(‘jack‘,32); var s1=new student(‘jenny‘,24,‘student‘); console.log(p1); console.log(s1);
拷貝繼承
function people(name,sex){ this.name=name; this.sex=sex; } people.prototype.showname=function(){ alert(this.name); } function student(name,sex,job){ people.call(this,name,sex);//屬性繼承:調用父類的構造函數 this.job=job; } extend(student.prototype,people.prototype);//拷貝繼承,利用for in 實現方法的繼承 student.prototype.showjob=function(){ alert(); } function extend(obj1,obj2){for (var attr in obj2) { obj1[attr]=obj2[attr]; } } var p1=new people(‘jack‘,32); var s1=new student(‘jenny‘,24,‘student‘); console.log(p1); console.log(s1);
js對象繼承