js对象之间的继承
来源:互联网 发布:短信呼叫转移软件 编辑:程序博客网 时间:2024/06/05 04:57
js的对象之间的继承抛弃了原型与构造器的概念,而转为字面量对象之间进行属性拷贝的方式进行继承。
首先我们来写一个封装好的继承函数:
function extend(parent){ var child={}; for(var i in parent){ child[i]=parent[i]; } child.uber=parent; return child;}
函数有一个形参parent,函数内部新建一个空的子对象,这个子对象就像一个白的画板,逐渐的将父对象上的内容临摹上去。for循环当中是将父对象中的属性和方法逐个复制给子对象。再将子对象的uber指向父对象,这样调用子对象的uber属性就可以调用父对象的属性和方法了,这相当与java中的super,为什么js当中不用super呢,因为super在js中是保留字,所以采用德语与“super”同义的“uber”来替代。
下面来看看这个函数的实际应用,首先创建一个父对象:
var Shape={ color:"blue", name:"shape", getName:function(){ return this.name; }}
接着我们来实现继承,并扩展和重写子对象的一些方法:
var circle=extend(Shape);circle.name="circle";circle.getName=function(){ return "parentName:"+this.uber.getName()+" childName:"+this.name;}circle.getS=function(){ return this.radius*this.radius*3.14;}circle.init=function(radius){ this.radius=radius;}
首先使用extend函数实现继承
子对象添加了新的name属性和新的getName方法,还有扩展的getS方法和init初始化方法
getName中this.uber.getName()调用父对象的getName()方法,得到父对象的name属性,this.name得到自身的name属性。
接下来执行方法:
circle.init(5);console.log(circle.name+","+circle.uber.name);console.log(circle.getName()+","+circle.uber.getName());console.log(circle.getS());/*结果:circle,shapeparentName:shape childName:circle,shape78.5*/
0 0
- js对象之间的继承
- JS继承之间的
- js对象的继承
- js对象的继承
- js中对象的继承
- jQuery对象之间的继承关系
- 理解js的对象,对象创建,继承
- js的对象继承的讲解
- js的对象继承的讲解
- JS对象的创建和继承
- js 学习面向对象的继承
- js面向对象编程的继承问题
- js对象的创建和继承
- js--面向对象--构造函数的继承
- JS对象继承的一些方法
- js对象的三种继承方式
- js面向对象的继承实例-call
- js中面向对象的继承
- JS深拷贝继承
- java多线程
- 每天一个Linux命令(13):less
- hdu 4461 The Power of Xiangqi(简单模拟)
- 贝叶斯分类器(中)
- js对象之间的继承
- 博客开张
- 图文教你整合最新版本搭建SSH框架之二:hibernate(非常详细)
- 蛇形填数
- JS封装继承函数
- 淘宝商品块,鼠标移上去改变边框样式的写法
- ES6--字符串、正则、数值、数组的扩展
- JS原型学习笔记
- Python登录并获取CSDN博客所有文章列表