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的弹出框插件
Mar 18 Javascript
简单常用的幻灯片播放实现代码
Sep 25 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
Nov 27 Javascript
jquery使用append(content)方法注意事项分享
Jan 06 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
Apr 17 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
JS实现左右无缝轮播图代码
May 01 Javascript
jquery easyui DataGrid简单示例
Jan 23 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
JS实现的简单表单验证功能完整实例
Oct 14 Javascript
Vue2 配置 Axios api 接口调用文件的方法
Nov 13 Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 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在服务器执行exec命令失败的解决方法
2012/03/03 PHP
用php实现百度网盘图片直链的代码分享
2012/11/01 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
js截取字符串的两种方法及区别详解
2013/11/05 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
Webpack打包字体font-awesome的方法示例
2018/04/26 Javascript
微信小程序实现手势滑动卡片效果
2019/08/26 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
[01:09:01]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第一场 10.28
2020/10/28 DOTA
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
Python实现FTP弱口令扫描器的方法示例
2019/01/31 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
如何通过python的fabric包完成代码上传部署
2019/07/29 Python
django迁移数据库错误问题解决
2019/07/29 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
2019/12/27 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
Nip + Fab官网:英国美容品牌
2019/08/26 全球购物
六查六看六改心得体会
2014/10/14 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
校园安全主题班会
2015/08/12 职场文书
2019大学生暑期实习心得总结
2019/08/21 职场文书