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打造最佳用户体验的登录页面的实现代码
Jul 08 Javascript
javascript 使td内容不换行不撑开
Nov 29 Javascript
jquery实现excel导出的方法
Apr 04 Javascript
js每隔5分钟执行一次ajax请求的实现方法
Nov 27 Javascript
jQuery CSS()方法改变现有的CSS样式
Aug 20 Javascript
JavaScript实现Java中StringBuffer的方法
Feb 09 Javascript
测试IE浏览器对JavaScript的AngularJS的兼容性
Jun 19 Javascript
javascript字符串函数汇总
Dec 06 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
Aug 08 jQuery
js实现手机web图片左右滑动效果
Dec 29 Javascript
详解基于vue-cli配置移动端自适应
Jan 13 Javascript
JavaScript 与 TypeScript之间的联系
Nov 27 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
关于PHP语言构造器介绍
2013/07/08 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
javascript 新浪背投广告实现代码
2009/07/07 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
JS简单实现仿百度控制台输出信息效果
2016/09/04 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
js转html实体的方法
2016/09/27 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
python制作朋友圈九宫格图片
2019/11/03 Python
将python安装信息加入注册表的示例
2019/11/20 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
印尼值得信赖的在线交易网站:Bukalapak
2019/03/11 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
华为C++笔试题
2014/08/05 面试题
J2EE是技术还是平台还是框架
2016/08/14 面试题
工作疏忽检讨书
2014/01/25 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
2014教师“四风问题”对照检查材料思想汇报
2014/09/16 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
预备党员个人总结
2015/02/14 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
Python中的xlrd模块使用整理
2021/06/15 Python
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python