Now that we have a way to represent hierarchical namespaces,
we will modify XClass.declare
to support namespaces.
The declare method now accepts a fully qualified class name
such as "animal.bird.Eagle", although the namespace is optional.
Here are the modified lines of the declare method.
01: declare: function(fullClassName, superclass, properties) {02: try {03: // Find the namespace for the new class.
04: var names = fullClassName.split('.');
05: var className = names.pop();
06: var namespace = this.namespace(names);07: ...08: cproto.namespace = namespace;09: ...10: namespace[className] = newClass;11: }
12: catch (err) {
13: var msg = "Declaration of class " + fullClassName +
14: " failed - " + err;
15: console.error(msg);
16: }17: },
Next we will modify our previous example to use namespaces.