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 相关文章推荐
css transform 3D幻灯片特效实现步骤解读
Mar 27 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
Aug 01 Javascript
node.js操作mongodb学习小结
Apr 25 Javascript
JavaScript中的bold()方法使用详解
Jun 08 Javascript
原生JavaScript实现滚动条效果
Mar 24 Javascript
JavaScript程序中的流程控制语句用法总结
May 23 Javascript
JavaScript的字符串方法汇总
Jul 31 Javascript
vue中element 上传功能的实现思路
Jul 06 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
Sep 09 Javascript
countUp.js实现数字动态变化效果
Oct 17 Javascript
vue+Element中table表格实现可编辑(select下拉框)
May 21 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
php存储过程调用实例代码
2013/02/03 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
twig模板常用语句实例小结
2016/02/04 PHP
[原创]smarty简单模板变量输出方法
2016/07/09 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
2017/04/05 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
javascript间隔定时器(延时定时器)学习 间隔调用和延时调用
2014/01/13 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
jQuery利用sort对DOM元素进行排序操作
2016/11/07 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
python利用sklearn包编写决策树源代码
2017/12/21 Python
在python 中实现运行多条shell命令
2019/01/07 Python
python 导入数据及作图的实现
2019/12/03 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
如何将json数据转换为python数据
2020/09/04 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
教师自我鉴定范文
2014/03/20 职场文书
纪律委员竞选稿
2015/11/19 职场文书
销售会议开幕词
2016/03/04 职场文书
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python