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 相关文章推荐
Dom加载让图片加载完再执行的脚本代码
May 15 Javascript
javascript Array.prototype.slice使用说明
Oct 11 Javascript
javascript进行四舍五入方法汇总
Dec 16 Javascript
jQuery中 prop() attr()使用详解
May 19 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
Mar 17 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
Apr 16 Javascript
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
Vue组件通信的四种方式汇总
Feb 08 Javascript
在Vue项目中使用d3.js的实例代码
May 01 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
Sep 03 jQuery
详解Vue源码学习之双向绑定
Apr 10 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
Apr 16 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多个文件及图片上传实例详解
2014/11/10 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
javascript控制台详解
2015/06/25 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
解析如何利用iframe标签以及js制作时钟
2016/12/08 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
Python中的探索性数据分析(功能式)
2017/12/22 Python
python-itchat 统计微信群、好友数量,及原始消息数据的实例
2019/02/21 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
新加坡领先的时尚生活方式零售品牌:CHARLES & KEITH
2018/01/16 全球购物
strstr()的简单实现
2013/09/26 面试题
设置器与访问器的定义以及各自特点
2016/01/08 面试题
渡河少年教学反思
2014/02/12 职场文书
材料员岗位职责
2014/03/13 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
2014年党建工作总结
2014/11/11 职场文书
检讨书范文
2015/01/27 职场文书
2015年社区文体活动总结
2015/03/25 职场文书
回复函范文
2015/07/14 职场文书
Python控制台输出俄罗斯方块移动和旋转功能
2021/04/18 Python