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 相关文章推荐
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
Sep 20 Javascript
jQuery 关于伪类选择符的使用说明
Apr 24 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
Feb 22 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
Apr 17 Javascript
JS实现仿百度文库评分功能
Jan 12 Javascript
树结构之JavaScript
Jan 24 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
Mar 17 Javascript
详解Vue.js搭建路由报错 router.map is not a function
Jun 27 Javascript
Node.js操作系统OS模块用法分析
Jan 04 Javascript
Vue中的循环及修改差值表达式的方法
Aug 29 Javascript
微信小程序 checkbox使用实例解析
Sep 09 Javascript
Js图片点击切换轮播实现代码
Jul 27 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
使用eAccelerator加密PHP程序
2008/10/03 PHP
一道求$b相对于$a的相对路径的php代码
2010/08/08 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
Zend Framework框架实现类似Google搜索分页效果
2016/11/25 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
jquery实时获取时间的简单实例
2017/01/26 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
javascript事件的绑定基础实例讲解(34)
2017/02/14 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Python实现去除代码前行号的方法
2015/03/10 Python
详解Python中for循环的使用
2015/04/14 Python
浅谈python 四种数值类型(int,long,float,complex)
2016/06/08 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
python 上下文管理器及自定义原理解析
2019/11/19 Python
python Qt5实现窗体跟踪鼠标移动
2019/12/13 Python
Numpy之reshape()使用详解
2019/12/26 Python
基于Python数据分析之pandas统计分析
2020/03/03 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
纽约复古灵感的现代珠宝品牌:Lulu Frost
2018/03/03 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
会议主持词
2014/03/17 职场文书
2015年教师节活动总结
2015/03/20 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
idea搭建可运行Servlet的Web项目
2021/06/26 Java/Android
nginx rewrite功能使用场景分析
2022/05/30 Servers
python数字图像处理:图像的绘制
2022/06/28 Python