JavaScript类继承及实例化的方法


Posted in Javascript onJuly 25, 2015

本文实例讲述了JavaScript类继承及实例化的方法。分享给大家供大家参考。具体如下:

(function(){
  var Class = {
    //扩展类
    create: function(aBaseClass, aClassDefine){
      var $class = function(){
        for(var member in aClassDefine){
          this[member] = aClassDefine[member];
        }
        if('undefined'===typeof aClassDefine.initialize){
          this.initialize = function(){};
        }
      };
      if('function' ===typeof aBaseClass){        
        $class.prototype = new aBaseClass();        
      }else if('object' ===typeof aBaseClass){
        $class.prototype = aBaseClass;
      }    
      return $class;
    },
    //实例化类
    new: function(jclass,args){
      var jclass = new jclass();
      if(jclass.initialize){
        jclass.initialize.apply(jclass, args);
      }
      return jclass;
    }
  };
  //export
  window.Class = Class;
})();

示例:

//基类对象或函数
var obj = {
  name: 'BaseName',
  init: function(){
    //...  
  },
  //...
};
var fun = function(){
  this.name = '';
  var init = function(){
    //..  .
  };
  var getName = function(){
    return this.name;
  },
  var setName = function(name){
    this.name = name;
    return this;//链式操作支持
  },
  //...
};
//从Object继承
var class_frome_obj = Class.create(obj,{
  initialize: function(){
    //构造函数
  },
  getName: function(){
    return this.name;
  },
  setName: function(name){
    this.name = name;
    return this;//链式操作支持
  },
  //...
});
//从Function继承
var class_frome_fun = Class.create(fun,{
  initialize: function(){
    //构造函数
  },
  //...
});
//从空对生成基类
var class_frome_base = Class.create({},{
  initialize: function(){
    //构造函数
  },
  //...
});
//实例化
var get_class_frome_obj = Class.new(class_frome_obj,[arg1,arg2,...]);
var get_class_frome_fun = Class.new(class_frome_fun,[arg1,arg2,...]);
var name1 = get_class_frome_obj.getName();
//console.log(name1);//BaseName
var name2 = get_class_frome_obj.setName('NewName').getName();
//console.log(name2);//NewName

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
setTimeout与setInterval在不同浏览器下的差异
Jan 24 Javascript
JavaScript中__proto__与prototype的关系深入理解
Dec 04 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
smartcrop.js智能图片裁剪库
Oct 14 Javascript
分享两段简单的JS代码防止SQL注入
Apr 12 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 Javascript
vue的diff算法知识点总结
Mar 29 Javascript
微信小程序数据统计和错误统计的实现方法
Jun 26 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
Jul 10 Javascript
JS实现可控制的进度条
Mar 25 Javascript
javascript 设计模式之享元模式原理与应用详解
Apr 08 Javascript
Vue通过provide inject实现组件通信
Sep 03 Javascript
JavaScript对Cookie进行读写操作实例
Jul 25 #Javascript
javascript去掉代码里面的注释
Jul 24 #Javascript
Jquery简单分页实现方法
Jul 24 #Javascript
javascript实现禁止鼠标滚轮事件
Jul 24 #Javascript
Css3制作变形与动画效果
Jul 24 #Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 #Javascript
基于JS实现的倒计时程序实例
Jul 24 #Javascript
You might like
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
php时间戳转换代码详解
2019/08/04 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
建议大家看下JavaScript重要知识更新
2007/07/08 Javascript
JavaScript 字符串乘法
2009/08/20 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
javascript中打印当前的时间实现思路及代码
2013/12/18 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
vue 文件目录结构详解
2017/11/24 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
node.js通过url读取文件
2020/10/16 Javascript
Python自然语言处理之词干,词形与最大匹配算法代码详解
2017/11/16 Python
Python OpenCV获取视频的方法
2018/02/28 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
2018/04/21 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
python实现简单文件读写函数
2021/02/25 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
法制宣传教育方案
2014/05/09 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
诉讼授权委托书
2014/10/15 职场文书
房地产销售员岗位职责
2015/04/11 职场文书
如何写好一份优秀的工作总结?
2019/06/21 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
python自动计算图像数据集的RGB均值
2021/06/18 Python
Django基础CBV装饰器和中间件
2022/03/22 Python