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 相关文章推荐
9个JavaScript评级/投票插件
Jan 18 Javascript
jquery下onpropertychange事件的绑定方法
Aug 01 Javascript
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
Jquery图形报表插件 jqplot简介及参数详解
Oct 10 Javascript
jquery等宽输出文字插件使用介绍
Sep 18 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
vue中实现滚动加载更多的示例
Nov 08 Javascript
ExtJs整合Echarts的示例代码
Feb 27 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
Apr 17 Javascript
微信小程序 可搜索的地址选择实现详解
Aug 28 Javascript
JS动态图片的实现方法完整示例
Jan 13 Javascript
js不常见操作运算符总结
Nov 20 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中将字符串转为HTML的实体引用的一个类
2013/02/03 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
js 调用父窗口的具体实现代码
2013/07/15 Javascript
javascript中Array数组的迭代方法实例分析
2015/02/04 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
跟我学习JScript的Bug与内存管理
2015/11/18 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
nodejs nedb 封装库与使用方法示例
2020/02/06 NodeJs
使用Kivy将python程序打包为apk文件
2017/07/29 Python
Python之循环结构
2019/01/15 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
python网络编程之多线程同时接受和发送
2019/09/03 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
什么是Python中的顺序表
2020/06/02 Python
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
Servlet面试题库
2015/07/18 面试题
函授本科毕业生自我鉴定
2013/10/16 职场文书
鼓励运动员的广播稿
2014/02/08 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
网络营销策划方案
2014/06/04 职场文书
物理教育专业求职信
2014/06/25 职场文书
政风行风建设责任书
2014/07/23 职场文书
班子四风对照检查材料
2014/08/21 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
温馨祝福晨语:美丽的一天从我的问候开始
2019/11/28 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记