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 相关文章推荐
Javascript 继承实现例子
Aug 12 Javascript
js获取元素在浏览器中的绝对位置
Jul 24 Javascript
ExtJS实现文件下载的方法实例
Nov 09 Javascript
JQuery中绑定事件(bind())和移除事件(unbind())
Feb 27 Javascript
JavaScript知识点总结(十)之this关键字
May 31 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
Oct 24 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
Feb 03 Javascript
js以及jquery实现手风琴效果
Apr 17 Javascript
深入理解JavaScript 参数按值传递
May 24 Javascript
JavaScript正则表达式的贪婪匹配和非贪婪匹配
Sep 05 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
Jul 04 Javascript
Vue中用JSON实现刷新界面不影响倒计时
Oct 26 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
基于Zookeeper的使用详解
2013/05/02 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
js通过循环多张图片实现动画效果
2019/12/19 Javascript
js面向对象之实现淘宝放大镜
2020/01/15 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
对pandas中Series的map函数详解
2018/07/25 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
Python代码打开本地.mp4格式文件的方法
2019/01/03 Python
Python提取特定时间段内数据的方法实例
2019/04/01 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
Python post请求实现代码实例
2020/02/28 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
Silk Therapeutics官网:清洁、抗衰老护肤品
2020/08/12 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
交通事故委托书范本
2014/09/28 职场文书
师德师风剖析材料
2014/09/30 职场文书
导游词之西递宏村
2019/12/10 职场文书
JavaScript ES6的函数拓展
2022/01/18 Javascript
Python实现文字pdf转换图片pdf效果
2022/04/03 Python