|------原型:prototype

|-----类似于类样式

|-----优化代码  构造器


js原型链(重点 难点) 建议:看源码

|-----构造函数可以生成对象

 

|-----var date=new Date();  原型对象  Date是date的实例

|-----date.getFullYear();  date.getDate();

|-----原型链(继承,call apply instanceof)

js原型链(重点 难点) 建议:看源码


js原型链(重点 难点) 建议:看源码

|-----继承关系

<script>

         function person(){

                            this.foot=2;

                   }

         person.prototype.getFoot=function(){

                            return this.foot;

                   }

         //定义一个男的

         function man(){

                            this.head=1;//赋值

                   }

         //继承关系:形成一个基本的原型链

         man.prototype=new person();

         man.prototype.getHead=function(){

                            return this.head;//返回值

                   }

         var m1=new man();

         //alert(m1.getHead());

         //alert(m1 instanceof Object);

         alert(m1 instanceof person);

</script>

|-------call  无参 用法:

<script>

         function person(){

                            this.aaa=["jack","rose","wang"];

                   }

         //无参的构造器

         function man(){

                            person.call(this);

                   }

         //继承  链也形成了

         man.prototype=new person();

         var m1=new man();

         m1.aaa.push("xiao");

         alert(m1.aaa);

         var m2=new man();

         alert(m2.aaa);

</script>

js原型链(重点 难点) 建议:看源码

|-------call  带参  用法:

<script>

         function person(name){

                            this.name=name;

                   }

         //无参的构造器

         function man(){

                            person.call(this,"雪山飞胡");

                            this.age=10;

                   }

         var m1=new man();

         alert(m1.age);

         alert(m1.name);

</script>

js原型链(重点 难点) 建议:看源码

|------组合继承 : 类似于java的多态(重点  难点)

<script>

    function Humans(name){

        this.name=name;

        this.clothing=["trousers","dress","jacket"];

    }

    Humans.prototype.sayName=function(){

        alert(this.name);

    };

    function Man(name,age){

        Humans.call(this,name);    //继承属性

        this.age=age;

    }

    Man.prototype=new Humans();    //继承方法

    Man.prototype.sayAge=function(){

        alert(this.age);

    };

 

    var man1=new Man("mary",38);

    man1.clothing.push("coat");

    alert(man1.clothing);     //输出"trousers,dress,jacket,coat"

    man1.sayName();            //输出mary

    man1.sayAge();            //输出38

    var man2=new Man("tom",26);

    alert(man2.clothing);    //输出"trousers,dress,jacket"

    man2.sayName();            //输出tom

    man2.sayAge();            //输出26

</script>







相关文章: