JavaScript之继承

来源:互联网 发布:java画图 编辑:程序博客网 时间:2024/06/16 19:53
JavaScript中的继承<script type="text/javascript">    /* 对象冒充方式是继承 */    function Animal(name,age){        this.name = name;        this.age = age;        this.eat = function(){            alert(this.name+"--"+this.age);        }    }    function Dog(name,age,sex){        this.animal = Animal;//定义一个属性        this.animal(name,age);//类似于Animal(name,age)        delete animal;//删除对象里的属性或数组中某一个元素        this.sex = sex;//初始化自己的属性        //子类特有的        this.bite = function(){            alert(this.name+"--"+this.age);        }    }//  var animal = new Animal("小狗","3","雌性");    var dog = new Dog("阿黄",20,"雄性");    dog.eat();//调用父类方法    dog.bite();</script>继承之混合方式<script type="text/javascript">    /* call(apply)+原型方式 */    function Person(name,age){        this.name = name;        this.age = age;    }    //在外部使用原型定义方法时通过call或apply是无法继承的    Person.prototype.eat = function(){        alert(this.name+"--like eatting");    }    //继承实现    function Chinese(name,age){    //  Person.call(this,name,age);        Person.apply(this,[name,age]);        //定义自己的方法        this.sleep = function(){            alert("我自己的方法。。。")        }    }     Chinese.prototype = new Person();    var ch = new Chinese("何家豪",22);    ch.eat();    ch.sleep(); </script>继承之Apply/call<script type="text/javascript">    function fn(width,height){        this.width = width;        this.height = height;    }    function area(width,height){        //fn(w,h);        alert( width*height);    }    var a = new fn(10,20);//  area.call(fn,a.width,a.height);//  area.apply(fn,[a.width,a.height]);    function Person(name,age){        this.name = name;        this.age = age;        this.eat = function(){            alert(this.name+"---"+this.age);        }    }    //类    function Chinese(name,age){//      Person.call(this,name,age);        Person.apply(this,[name,age]);        //成员方法        this.sleep = function(){            alert(this.name+"like sleeping...");        }        /* this.eat = function(){            alert("我是重写的方法");        } */    }    var ch = new Chinese("张三",20);    ch.eat();    ch.sleep();</script>总结:学习js语言时,将js与Java中的语法进行类比,尤其注意js的独特之         处。
0 0
原创粉丝点击