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关于图形报表的运用实现代码
Jan 06 Javascript
自动设置iframe大小的jQuery代码
Sep 11 Javascript
jquery自定义下拉列表示例
Apr 25 Javascript
js数组与字符串的相互转换方法
Jul 09 Javascript
AngularJS实现Model缓存的方式
Feb 03 Javascript
15位和18位身份证JS校验的简单实例
Jul 18 Javascript
js带闹铃功能的倒计时代码
Sep 29 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
Dec 08 Javascript
Vue中通过Vue.extend动态创建实例的方法
Aug 13 Javascript
解决layui弹框失效的问题
Sep 09 Javascript
vue实现数字滚动效果
Jun 29 Javascript
vue组件中实现嵌套子组件案例
Aug 31 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
mysql 搜索之简单应用
2007/04/27 PHP
PHP页面间参数传递的四种方法详解
2013/06/09 PHP
PHP内核探索:变量概述
2014/01/30 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
PHP Class SoapClient not found解决方法
2018/01/20 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
广告代码静态化js通用函数
2007/05/09 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
2015/11/06 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
python实现狄克斯特拉算法
2019/01/17 Python
浅谈python的输入输出,注释,基本数据类型
2019/04/02 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
自1926年以来就为冰岛保持温暖:66°North
2020/11/27 全球购物
介绍一下#error预处理
2015/09/25 面试题
《望庐山瀑布》教学反思
2014/04/22 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
庆祝国庆节标语
2014/10/09 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
社区节水倡议书
2015/04/29 职场文书
高中团支书竞选稿
2015/11/21 职场文书
个人道歉信大全
2019/04/11 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书