博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript继承
阅读量:5050 次
发布时间:2019-06-12

本文共 1838 字,大约阅读时间需要 6 分钟。

 

 绑定构造函数


 

在子类构造函数中使用Fatherconstructor.apply(this, arguments)

eg:

//父类function People(name,age){    this.name = name;    this.age = age;    this.species = "human";    this.getName = function(){        return this.name;    }    this.getAge = function(){        return this.age;    }    this.sayHello = function(){        console.log("hi,I am the father class");    }}//子类function Children(name,age){        People.apply(this,arguments)}var wish = new Children("wish");console.log("the name of wish is:"+wish.getName());  //the name of wish is:wish console.log(wish.sayHello());  //hi,I am the father class

 

 

使用prototype


 

 详细见:

 

也使用prototype拷贝

准备拷贝函数:

function extend(Child, Parent){    var parent = Parent.prototype;    var child = Child.prototype;    for(var i in parent){        child[i] = parent[i];    }    child.uber = parent; //备用性质,指向上一层}

 

eg:

//父类function People(){}People.prototype.sayHello = function(){    return "hello";}People.prototype.getName = function(){    return this.name;}People.prototype.getAge = function(){    return this.age;}//子类function Children(name, age){    this.name = name;    this.age = age;}//定义拷贝函数function extend(Child, Parent){    var parent = Parent.prototype;    var child = Child.prototype;    for(var i in parent){        child[i] = parent[i];    }    child.uber = parent; //备用性质,指向上一层}//子类extend(Children, People);var wish = new Children("wish","20");console.log(wish.getName());  //wishconsole.log(wish.getAge());  //20console.log(wish.sayHello());  //hello

 

 拷贝继承


 

 

function deepCopy(p, c) {    var c = c || {};    for (var i in p) {      if (typeof p[i] === 'object') {        c[i] = (p[i].constructor === Array) ? [] : {};        deepCopy(p[i], c[i]);      } else {         c[i] = p[i];      }    }    return c;}

 

详细见:

 

参考:http://www.ruanyifeng.com/blog

转载于:https://www.cnblogs.com/wishyouhappy/p/3738232.html

你可能感兴趣的文章
js-创建对象的几种方式
查看>>
JDK JRE Java虚拟机的关系
查看>>
2018.11.20
查看>>
word20161215
查看>>
12th week blog
查看>>
dijkstra (模板)
查看>>
python小记(3)
查看>>
编译Linux驱动程序 遇到的问题
查看>>
大型分布式网站架构技术总结
查看>>
HDU 1017[A Mathematical Curiosity]暴力,格式
查看>>
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
【ASP.NET开发】菜鸟时期的ADO.NET使用笔记
查看>>
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>
Activity和Fragment生命周期对比
查看>>
android 分辨率自适应
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>