Rewrite javascript function into node.js module -
i have function: (which guess abstract mill creating javascript objects)
var $class = function(definition) { var constructor = definition.constructor; var parent = definition.extends; if (parent) { var f = function() { }; constructor._superclass = f.prototype = parent.prototype; constructor.prototype = new f(); } (var key in definition) { constructor.prototype[key] = definition[key]; } constructor.prototype.constructor = constructor; homecoming constructor; };
a utilize defining classes c/java syntax polymorphism , extending:
var bullet = $class({ extends: gameobject, constructor: function(texturepath, x, y, ctx, direction, passable, player) { gameobject.call(this, texturepath, x, y, ctx, 1, 1, passable, new array(8, 8, 0, 0)); }, isactive: function() { }, getplayer: function() { }, update: function(dt) { }, destroy: function() { }, processcollision: function() { } });
and calling:
var bullet = new bullet(params);
i tried rewrite nodejs module this:
(function(){ var $class = function(definition) { var constructor = definition.constructor; var parent = definition.extends; if (parent) { var f = function() { }; constructor._superclass = f.prototype = parent.prototype; constructor.prototype = new f(); } (var key in definition) { constructor.prototype[key] = definition[key]; } constructor.prototype.constructor = constructor; homecoming constructor; }; module.exports.createclass = function() { homecoming $class(); } });
and phone call with:
var c = require(__dirname + "\\class"); var bullet = c.createclass({ extends: gameobject, constructor: function() {} });
but doesn't work, can please help me rewriting?
update: rewrited @salem answer, lost extending , polymorphism in process. in order have extending have write instead of
extends: parentclass
this:
extends: parentclass.constructor
i've expected polymorphism like:
// in class extended parentclass parentclass.method(); // in parent class adding line module.exports.method = parentclass.method;
but undefined. catch?
finally used mochiscript module nodejs, improve syntax sugar more object oriented functionality.
in code, createclass
function without parameter. phone call $class
without paramter also.
you don't need wrap code in function, because declare there won't accessible outside unless export it. should this:
var func = function(definition) { var constructor = definition.constructor; var parent = definition.extends; if (parent) { var f = function() { }; constructor._superclass = f.prototype = parent.prototype; constructor.prototype = new f(); } (var key in definition) { constructor.prototype[key] = definition[key]; } constructor.prototype.constructor = constructor; homecoming constructor; }; module.exports.createclass = func;
this means if require module x
, thing can access x.createclass
, , not x.func
or else.
javascript node.js rewriting
No comments:
Post a Comment