Two ways to expose a module
Method 1
A generic module object with its own set of properties and methods (add properties and methods to "exports")
function functionA() { }
function functionB() { }
exports.functionA = functionA;
exports.functionB = functionB;
To use these function outside the module:
var Util = require('/Util');Util.functionA();
Method 2
Class definition that is used to instantiate objects (replace the "module.exports" object)
var _privateStaticMember = 'PrSM';
function MyClass ()
{
var _privateInstanceMember = 'PrIM';
var _privateInstanceMethod = function ()
{
return _privateStaticMember + ','
+ _privateInstanceMember + ','
+ MyClass.publicStaticMember + ','
+ this.publicInstanceMember;
};
this.publicInstanceMember = 'PuIM';
this.publicInstanceMethod = function ()
{
return _privateStaticMember + ','
+ _privateInstanceMember + ','
+ MyClass.publicStaticMember + ','
+ this.publicInstanceMember;
};
}
var _privateStaticMethod = function ()
{
return _privateStaticMember + ',' + MyClass.publicStaticMember;
};
MyClass.publicStaticMember = 'PuSM';
MyClass.publicStaticMethod = function ()
{
return _privateStaticMember + ',' + MyClass.publicStaticMember;
};
module.exports = MyClass;
To use
var MyClass = require('/MyClass');
var o = new MyClass();
alert( o.publicInstanceMember );
alert( o.publicInstanceMethod() );
alert( MyClass.publicStaticMember );
alert( MyClass.publicStaticMethod() );
沒有留言:
張貼留言