js封装可使用的构造函数继承用法分析

 更新时间:2015年01月28日 11:43:19   投稿:shichen2014  
这篇文章主要介绍了js封装可使用的构造函数继承用法,实例分析了使用属性拷贝来实现拷贝继承的技巧,需要的朋友可以参考下

本文实例讲述了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判断日期时间差的实例代码

    本文通过实例代码给大家介绍了js判断日期时间差的方法,文章给大家补充介绍了js求时间差的代码,需要的朋友参考下吧
    2018-03-03
  • js控制鼠标事件移动及移出效果显示

    js控制鼠标事件移动及移出效果显示

    鼠标事件的移动及移出效果都可以使用js来自定义,下面有个示例,实,效果为当事件发生改变时背景颜色也随着改变
    2014-10-10
  • javascript textarea光标定位方法(兼容IE和FF)

    javascript textarea光标定位方法(兼容IE和FF)

    主要是实现textarea中光标的定位方法,考虑到多浏览器的兼容性,需要的朋友可以参考下。
    2011-03-03
  • js用typeof方法判断undefined类型

    js用typeof方法判断undefined类型

    js判断undefined类型,可以使用typeof方法,typeof 返回的是字符串,其中就有一个是undefined
    2014-07-07
  • JavaScript prototype 使用介绍

    JavaScript prototype 使用介绍

    用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱
    2013-08-08
  • js post提交调用方法

    js post提交调用方法

    这篇文章主要介绍了js post提交调用方法,需要的朋友可以参考下
    2014-02-02
  • JavaScript实现两个数组的交集

    JavaScript实现两个数组的交集

    这篇文章主要介绍了JavaScript实现两个数组的交集,给定两个数组 ​​nums1​​​和​​nums2​​返回它们的交集,输出结果中的每个元素一定是唯一的,下文详细介绍,需要的小伙伴可以参考一下
    2022-03-03
  • js弹出窗口返回值的简单实例

    js弹出窗口返回值的简单实例

    下面小编就为大家带来一篇js弹出窗口返回值的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • 纯Javascript实现ping功能的方法

    纯Javascript实现ping功能的方法

    这篇文章主要介绍了纯Javascript实现ping功能的方法,实例分析了javascript实现ping功能的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • javascript下拉框选项单击事件的例子分享

    javascript下拉框选项单击事件的例子分享

    这篇文章主要分享了一些javascript下拉框选项单击事件的例子,以及在例子中遇到的问题的解决方法,十分实用,推荐给小伙伴们参考下。
    2015-03-03

最新评论