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 相关文章推荐
IE浏览器PNG图片透明效果代码
Sep 02 Javascript
javascript中的107个基础知识收集整理 推荐
Mar 29 Javascript
Three.js源码阅读笔记(物体是如何组织的)
Dec 27 Javascript
Javascript 按位取反运算符 (~)
Feb 04 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
AngularJS 的$timeout服务示例代码
Sep 21 Javascript
原生JS控制多个滚动条同步跟随滚动效果
Dec 22 Javascript
jquery判断滚动条距离顶部的距离方法
Sep 05 jQuery
angular5 子组件监听父组件传入值的变化方法
Sep 30 Javascript
JS中队列和双端队列实现及应用详解
Sep 29 Javascript
解决vue打包 npm run build-test突然不动了的问题
Nov 13 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中uploaded_files函数使用方法详解
2011/03/09 PHP
jQuery根据纬度经度查看地图处理程序
2013/05/08 Javascript
Extjs NumberField后面加单位实现思路
2013/07/30 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
JS回调函数原理与用法详解【附PHP回调函数】
2019/07/20 Javascript
javascript实现弹出层效果
2019/12/10 Javascript
python动态加载包的方法小结
2016/04/18 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
WEB控件可以激发服务端事件,请谈谈服务端事件是怎么发生并解释其原理?自动传回是什么?为什么要使用自动传回?
2012/02/21 面试题
一套C#面试题
2013/10/09 面试题
大学生应聘自荐信
2013/10/11 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
火锅店营销方案
2014/02/26 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
领导班子四风问题个人对照检查材料
2014/10/04 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
教你怎么用Python实现多路径迷宫
2021/04/29 Python