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 相关文章推荐
打开超链需要“确认”对话框的方法
Mar 08 Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 Javascript
Backbone View 之间通信的三种方式
Aug 09 Javascript
JavaScript生成验证码并实现验证功能
Sep 24 Javascript
整理关于Bootstrap列表组的慕课笔记
Mar 29 Javascript
javascript按顺序加载运行js方法
Dec 01 Javascript
javaScript 连接打印机,打印小票的实例
Dec 29 Javascript
Node.js利用console输出日志文件的方法示例
Apr 27 Javascript
jQuery序列化form表单数据为JSON对象的实现方法
Sep 20 jQuery
js限制输入框只能输入数字(onkeyup触发)
Sep 28 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
Sep 29 Javascript
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
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
PHP中创建图像并绘制文字的例子
2014/11/19 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
使用UrlConnection实现后台模拟http请求的简单实例
2017/01/04 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
微信小程序位置授权处理方法
2019/06/13 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
Vue3 中的数据侦测的实现
2019/10/09 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
基于Python实现对PDF文件的OCR识别
2016/08/05 Python
Python2随机数列生成器简单实例
2017/09/04 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
解决Python2.7中IDLE启动没有反应的问题
2018/11/30 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
2019/09/16 Python
python编写猜数字小游戏
2019/10/06 Python
Django 返回json数据的实现示例
2020/03/05 Python
Python实现代码块儿折叠
2020/04/15 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
比较一下entity bean和session bean
2013/12/27 面试题
自荐书模板
2013/12/15 职场文书
农民入党思想汇报
2014/01/03 职场文书
学年自我鉴定
2014/01/16 职场文书
党员创先争优承诺书
2014/03/26 职场文书
车辆年审委托书范本
2014/09/18 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
热情服务标语
2014/10/07 职场文书
调研报告的主要写法
2019/04/18 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python