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 相关文章推荐
jQuery动态添加的元素绑定事件处理函数代码
Aug 02 Javascript
jQuery右键菜单contextMenu使用实例
Sep 28 Javascript
javascript实现复制与粘贴操作实例
Oct 16 Javascript
有关Promises异步问题详解
Nov 13 Javascript
jquery实现页面常用的返回顶部效果
Mar 04 Javascript
Bootstrap每天必学之按钮(Button)插件
Apr 25 Javascript
JQuery插件Marquee.js实现无缝滚动效果
Apr 26 Javascript
用Vue写一个分页器的示例代码
Apr 22 Javascript
angularJs利用$scope处理升降序的方法
Oct 08 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
Nov 12 Javascript
ES6实现图片切换特效代码
Jan 14 Javascript
JS如何实现基于websocket的多端桥接平台
May 14 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
Banner程序
2006/10/09 PHP
php获得当前的脚本网址
2007/12/10 PHP
常用的php对象类型判断
2008/08/27 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
Yii中实现处理前后台登录的新方法
2015/12/28 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
JavaScript实现多个重叠层点击切换效果的方法
2015/04/24 Javascript
在JavaScript中操作时间之getYear()方法的使用教程
2015/06/11 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
2016/06/13 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
2018/07/23 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
js实现拖拽与碰撞检测
2020/09/18 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
Python 时间处理datetime实例
2008/09/06 Python
Python 调用VC++的动态链接库(DLL)
2008/09/06 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Python中logger日志模块详解
2020/08/04 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
企业总经理任命书
2014/06/05 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
感动中国何玥观后感
2015/06/02 职场文书
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python