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

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

       上文讲述过js实现面向对象,一定是能够实现继承的效果的。尽管说非常多的js框架都帮助我们实现了继承的功能。或者说在日常的工作和学习中我们压根就用不到js的继承,可是我们还是须要了解一下js中继承。以方便我们阅读框架中的继承是怎样实现的。在以下的文章中我会给大家模拟一下js中继承的实现。

 先来看一下以下创建对象的一种方式:

/* * 对象工厂 */function objectFactory(jsonObj){	function objectEntity(){		}	if(typeof jsonObj == "object"){		for(var index in jsonObj){			objectEntity.prototype[index] = jsonObj[index]; 		}		}	return objectEntity;}var Person = objectFactory({	pname:'andy',	sex:'man'});var person = new Person();console.info(person+"--"+Person);// [object Object] -- function objectEntity(){}console.info(person.pname);console.info(person.sex); 
objectFactory接受的是一个json对象jsonObj作为參数,在这个函数内部创建了一个函数objectEntity。然后就推断输入的jsonObj
是否是对象类型。假设是那么就遍历这个json对象,然后把遍历出来的每一个值都附加objectEntity的原型上面,请注意,以下返回的
就是objectEntity(能够參考上节中的js闭包概念),也就是说Person指向的就是objectEntity,那么Person的原型上面自然的就有了
pname,sex等属性。

假设上述可以理解的话,我们就行进行下一步的继承的实现(类似于非常多框架中的继承底层实现)
/* * 继承 */function inherit(obj,prop){	function f(){			}	if(typeof obj=="object"){		for(var index in obj){			f.prototype[index] = obj[index]; 		}	}else{		f.prototype = obj.prototype;		for(var index in prop){			f.prototype[index] = prop[index]; 		}	}		return f;}var Animal = inherit({	type:'animal',	name:'animal',	jump:'jump'});var Dog = inherit(Animal,{	name:'i am a dog',	jump:'dog jumpping'});var dog = new Dog;console.info(dog.type);console.info(dog.name);
在这里就不再对inherit这个函数进行具体的解释,读者能够自行分析,在这里Dog 继承了Animal。那么Dog创建出来的对象dog自然的就有了Animal中的各个属性。
 

 

 

转载地址:http://tguco.baihongyu.com/

你可能感兴趣的文章
删除LVM步骤
查看>>
Zookeeper客户端
查看>>
linux常用指令
查看>>
Servlet Demo
查看>>
Struts2中的<s:action>标签
查看>>
Java中取某一个范围的随机数
查看>>
一条复杂SQL实现思路
查看>>
我的友情链接
查看>>
android app 退出时提示确认
查看>>
win10 配置
查看>>
java 编译100个范例
查看>>
Session Cookie ServletContext
查看>>
单点登录SSO
查看>>
遇见有的软件开启后画面模糊怎么解决
查看>>
好系统重装助手教你怎么识别固态硬盘还是机械硬盘
查看>>
170. js中获取随机数 (记录一下)
查看>>
深入浅出爬虫之道: Python、Golang与GraphQuery的对比
查看>>
DHCP配置
查看>>
MySQL性能测试(二)——Ubuntu 14.4.02, MySQL 5.6.25, sysbench 4.8
查看>>
我的友情链接
查看>>