【发布时间】:2016-05-02 01:44:18
【问题描述】:
我正在尝试使用对象以及从这些对象继承的对象来实现一些嵌套的命名空间。 我想知道第一种方法是否实施得很好:
// Namespaces
var firstDomain = {};
firstDomain.firstSubDomain = {};
firstDomain.firstSubDomain.secondSubDomain = {}
/*
* Base Object
*/
firstDomain.firstSubDomain.secondSubDomain.baseObject = (function(baseObject) {
baseObject.init = function() {};
return {
init: baseObject.init
}
})(firstDomain.firstSubDomain.secondSubDomain.baseObject || (firstDomain.firstSubDomain.secondSubDomain.baseObject = {}));
/*
* Extended Object
*/
firstDomain.firstSubDomain.secondSubDomain.extendedObject = (function(extendedObject) {
extendedObject.init = function() {};
extendedObject.init.prototype = Object.create(firstDomain.firstSubDomain.secondSubDomain.baseObject.init.prototype);
extendedObject.init.prototype.extraFunction = function() {};
return {
init: extendedObject.init
}
})(firstDomain.firstSubDomain.secondSubDomain.extendedObject || (firstDomain.firstSubDomain.secondSubDomain.extendedObject = {}))
// Objects instances
// Base object instance
var baseObject = new firstDomain.firstSubDomain.secondSubDomain.baseObject.init();
// Extended object instance and executing particular method
var extendedObject = new firstDomain.firstSubDomain.secondSubDomain.extendedObject.init();
extendedObject.extraFunction();
console.log(firstDomain);
这里是回购链接:
【问题讨论】:
-
实施得很好在什么意义上?
-
嗨@Liam,感谢您的回答。我试图找到实现命名空间对象继承的最佳方法。您知道任何链接或教程,我可以在其中找到有关此的内容吗?我用谷歌搜索了它,但我没有找到这个实现。重点是:new firstDomain.firstSubDomain.SecondSubdomain.baseObject()
-
谢谢,终于找到更好的办法了:github.com/termosfera/JS_Design_Patterns/blob/master/…
-
你真的应该把它命名为
firstSubSubDomain。 “第二”在这里非常混乱。
标签: javascript design-patterns namespaces