码迷,mamicode.com
首页 > Web开发 > 详细

JS:继承

时间:2015-12-03 19:16:32      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

继承

   原型链实现了继承,但无法传参和共享

function Box(){          //Box()构造函数
                     this.name = "lee";
                 }

                 function Desk(){        //Desk()构造函数
                     this.age = 100;
                 }

                 Desk.prototype = new Box();  //通过原型Desk()继承了Box()
                 Desk.prototype.age = 200;//对应第255行
                 

                 var desk = new Desk();
                 alert(desk.age);
                 alert(desk.name); //undefind, 对应第220行

                 function Table(){
                     this.level = "cccc";
                 }

                 Table.prototype = new Desk();


                 var table = new Table();
                 alert(table.name);

 

原型链+构造函数的模式,称为组合继承,解决了传参和共享的问题,常用此方法。

 

function Box(age){
                     this.name = ["ll","cc","kk"];
                     this.age = age;
                 }

                 Box.prototype.run = function(){
                     return this.name + this.age;
                 }

                 function Desk(age){
                     Box.call(this,age);//this表示Desk. 对象冒充,给父类传参,解决了传参问题
                 }

                 Desk.prototype = new Box(); //原型链继承,解决了共享问题

                 var desk = new Box(120);
                 //alert(desk.age);//20
                 //alert(desk.name); //llcckk
                 desk.name.push("00");
                 //alert(desk.name); //llcckk00
                 alert(desk.run());

 

JS:继承

标签:

原文地址:http://www.cnblogs.com/wine/p/5017141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!