本文实例讲述了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;}};//exportwindow.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);//BaseNamevar name2 = get_class_frome_obj.setName("NewName").getName();//console.log(name2);//NewName希望本文所述对大家的javascript程序设计有所帮助。