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 相关文章推荐
Javascript 面向对象 对象(Object)
May 13 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
javascript开发技术大全-第1章javascript概述
Jul 03 Javascript
jQuery的deferred对象使用详解
Aug 20 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
Dec 13 Javascript
Asp.Net alert弹出提示信息的几种方法总结
Jan 29 Javascript
jquery中 $.expr使用实例介绍
Jun 09 Javascript
JavaScript编写推箱子游戏
Jul 07 Javascript
基于javascript制作微博发布栏效果
Apr 04 Javascript
轻松掌握JavaScript装饰者模式
Aug 27 Javascript
parabola.js抛物线与加入购物车效果的示例代码
Oct 25 Javascript
微信小程序基于高德地图查找位置并显示文字
Oct 30 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实现多服务器共享SESSION数据的方法
2007/03/16 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
JQuery获取文本框中字符长度的代码
2011/09/29 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
javascript单引号和双引号的区别和处理
2014/05/14 Javascript
使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方)
2014/05/27 Javascript
jQuery实现在下拉列表选择时获取json数据的方法
2015/04/16 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
js实现常用排序算法
2016/08/09 Javascript
浅谈EasyUI常用控件的禁用方法
2016/11/09 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
Angular 5.0 来了! 有这些大变化
2017/11/15 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
python中的字典使用分享
2016/07/31 Python
Python字符串拼接的几种方法整理
2017/08/02 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
科沃斯机器人官网商城:Ecovacs
2016/08/29 全球购物
eBay美国官网:eBay.com
2020/10/24 全球购物
中文专业毕业生自荐信
2013/10/28 职场文书
门诊手术室工作制度
2014/01/30 职场文书
党的群众路线教育实践活动批评与自我批评
2014/02/16 职场文书
安全生产演讲稿
2014/05/09 职场文书
企业党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
家长通知书家长意见
2014/12/30 职场文书
商超业务员岗位职责
2015/02/13 职场文书
Python爬虫基础初探selenium
2021/05/31 Python
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js