js封装可使用的构造函数继承用法分析


Posted in Javascript onJanuary 28, 2015

本文实例讲述了js封装可使用的构造函数继承用法。分享给大家供大家参考。具体如下:

先来看下面这段代码

(YUI)库所用的方法:

function extend(Child, Parent) {


var F = function(){};


F.prototype = Parent.prototype;


Child.prototype = new F();


Child.prototype.constructor = Child;


Child.uber = Parent.prototype;

}

另外还有一种拷贝继承方法,属性拷贝:

这种方法与之前的不同,由于已经完成对child的原型进行扩展,不需要再重置child.prototype.constructor属性了,因为它不会再被覆盖。

与之前的方法相比,这个方法在效率上显然略孙一筹。因为这里执行的是对子对象原型的逐一拷贝。而非简单的原型链查询。

这种方式仅适用只包含基本数据类型的对象,所有的对象类型包括函数和数组,都是不可复制的,他们只支持引用传递。

function extend2(Child, Parent) {

var p = Parent.prototype;


var c = Child.prototype;


for (var i in p) {



c[i] = p[i];



}


c.uber = p;

}

var Shape = function(){}

var TwoDShape = function(){}

Shape.prototype.name = 'shape';

Shape.prototype.toString = function(){

 return this.name;

}

extend2(TwoDShape,Shape);

var t = new TwoDShape();

t.name

//-->"shape"

t.toString();

//-->"shape"

TwoDShape.prototype.name = 'TwoDShape';

t.name

//-->"2d shape"

t.toString();

//-->"2d shape"
TwoDShape.prototype.toString === Shape.prototype.toString

//-->true

TwoDShape.prototype.name === Shape.prototype.name

//-->false

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
Jquery替换已存在于element上的event的方法
Mar 09 Javascript
7个有用的jQuery代码片段分享
May 19 Javascript
javascript数组随机排序实例分析
Jul 22 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
表单验证正则表达式实例代码详解
Nov 09 Javascript
Jquery获取第一个子元素简单实例
Jun 02 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
Aug 02 Javascript
JS中使用textPath实现线条上的文字
Dec 25 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
Jan 13 Javascript
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
VUE基于NUXT的SSR 服务端渲染
Nov 30 Javascript
Vue.set 全局操作简单示例
Sep 19 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 #Javascript
javascript原型链继承用法实例分析
Jan 28 #Javascript
Jquery 实现图片轮换
Jan 28 #Javascript
javascript查询字符串参数的方法
Jan 28 #Javascript
Jquery 实现弹出层插件
Jan 28 #Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
Jan 28 #Javascript
Jquery 实现table样式的设定
Jan 28 #Javascript
You might like
利用js调用后台php进行数据处理原码
2006/10/09 PHP
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
javascript 表单的友好用户体现
2009/01/07 Javascript
JavaScript 异步调用框架 (Part 6 - 实例 & 模式)
2009/08/04 Javascript
为jQuery增加join方法的实现代码
2010/11/28 Javascript
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
详解JavaScript中循环控制语句的用法
2015/06/03 Javascript
浅谈js 闭包引起的内存泄露问题
2015/06/22 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
jQuery实现的网页右下角tab样式在线客服效果代码
2015/10/23 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
利用vue + element实现表格分页和前端搜索的方法
2017/12/25 Javascript
浅谈SpringMVC中post checkbox 多选框value的值(隐藏域方式)
2018/01/08 Javascript
妙用缓存调用链实现JS方法的重载
2018/04/30 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
简单介绍Python中的len()函数的使用
2015/04/07 Python
python中的装饰器详解
2015/04/13 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
导游实习生自荐书
2014/01/28 职场文书
汽车销售经理岗位职责
2014/06/09 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
小学教育见习报告
2014/10/31 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
杭白菊导游词
2015/02/10 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
服务行业标语口号
2015/12/26 职场文书