码迷,mamicode.com
首页 > 其他好文 > 详细

ES5继承

时间:2017-12-17 14:08:56      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:one   div   alert   javascrip   实例   nbsp   his   text   argument   

原型继承

<script type="text/javascript">

    function Father(){}//构造函数

    //原型属性

    Father.prototype.name = "李四";

    Father.prototype.age = 24;

    //原型方法

    Father.prototype.showName = function(){

        return this.name;

    }

    Father.prototype.showAge = function(){

        return this.age;

    }

    function Son(){}

    //原型链继承

    //Son.prototype = Father.prototype;

    //Son.prototype = new Father();

    //遍历父类的原型

    for(var i in Father.prototype){

        Son.prototype[i] = Father.prototype[i];

    }

    var son1 = new Son();

    alert(son1.showName());

    alert(son1.showAge());

</script>

 

经典继承

<script>

    //构造函数

    function Father(name,age,money){

        //实例属性

        this.name = name;

        this.age = age;

        this.money = money;

        //实例方法

        this.showName = function(){

            return this.name;

        }

        this.showAge = function(){

            return this.age;

        }

        this.showMoney = function(){

            return this.money;

        }

    }

    function Son(name,age,money,sex){

        //经典继承、伪装继承、冒充继承(call,apply)只能继承实例

        //Father.apply(this,arguments);

        //Father.call(this,name,age,money);

        Father.apply(this,[name,age,money]);

        this.sex = sex;

        this.showSex = function(){

            return this.sex;

        }

    }

    var son1 = new Son("张三",23,20000,"男");

    alert(son1.showName());

    alert(son1.showAge());

    alert(son1.showMoney());

    alert(son1.showSex());

</script>

call与aplly的异同:

第一个参数this都一样,指当前对象

第二个参数不一样:call的是一个个的参数列表;apply的是一个数组(arguments也可以)

ES5继承

标签:one   div   alert   javascrip   实例   nbsp   his   text   argument   

原文地址:http://www.cnblogs.com/twoeggg/p/8051895.html

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