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——表单应用范例
Feb 20 Javascript
页面回到顶部的三种实现(锚标记,js)
Oct 01 Javascript
20个实用的JavaScript技巧分享
Nov 28 Javascript
跟我学习javascript的循环
Nov 18 Javascript
AngularJS 使用$sce控制代码安全检查
Jan 05 Javascript
jQuery操作属性和样式详解
Apr 13 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
简单理解js的prototype属性及使用
Dec 07 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
Feb 06 Javascript
vue使用echarts图表的详细方法
Oct 22 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
Nov 08 Javascript
Vue scoped及deep使用方法解析
Aug 01 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新手上路(十)
2006/10/09 PHP
php输出1000以内质数(素数)示例
2014/02/16 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
PHP实现限制域名访问的实现代码(本地验证)
2020/09/13 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
javascript控制台详解
2015/06/25 Javascript
jQuery中serializeArray()与serialize()的区别实例分析
2015/12/09 Javascript
ES6中如何使用Set和WeakSet
2016/03/10 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
2016/12/02 Javascript
探索Javascript中this的奥秘
2016/12/11 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Fabric 应用案例
2016/08/28 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
python实现密度聚类(模板代码+sklearn代码)
2020/04/27 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
三方股份合作协议书
2014/10/13 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server
jQuery实现影院选座订座效果
2021/04/13 jQuery
A22国内电台短波广播频率表
2022/05/10 无线电