这样做可以吗?
var MyObj = function() {};
var MyObj.prototype.thing = function() {};
MyObj.SubObj = function() {}
MyObj.SubObj.prototype.thing = function() {}
var ins = new MyObj();
var another = new MyObj.SubObj();
在这段代码中,MyObj就像一个父类,因为我已经将MyObj.SubObj指定为另一个带有它自己的原型链的构造函数。
将构造函数嵌套到另一个构造函数中是否可以这样?
答案 0 :(得分:1)
完全好的这样做,但它并没有做任何特别的事情。特别是,MyObj
和MyObj.subobj
之间没有任何继承关系,MyObj.prototype.thing
和MyObj.subobj.prototype.thing
函数也不会以任何方式链接。
我也不会称之为嵌套。这里唯一的关系是subobj
是函数MyObj
的属性。它没有以任何范围的方式嵌套在其中......
但这样做完全没问题,作为一种组织事物(例如,为了避免大量的全局符号),只要继承并不意味着暗示。
旁注:JavaScript中的压倒性的约定是像这样的构造函数使用最初限制的CamelCasing
,以区别于正常函数(使用非上限camelCasing
)。您之前有myobj
和subobj
。您已将第一个更改为MyObj
,但如果遵循此约定,您也会将subobj
更改为SubObj
(仅限FWIW)。