Javascript 将构造函数添加到';家长';对象
这样可以吗Javascript 将构造函数添加到';家长';对象,javascript,Javascript,这样可以吗 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指
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指定为另一个具有自己原型链的构造函数
这样从另一个构造函数中嵌套一个构造函数可以吗?这样做完全可以,但它没有做任何特殊的事情。特别是,MyObj
和MyObj.subobj
之间没有任何继承关系,MyObj.prototype.thing
和MyObj.subobj.prototype.thing
功能之间也没有任何链接
我也不会称之为筑巢。这里唯一的关系是subobj
是函数MyObj
的一个属性。它不是以任何范围的方式嵌套在其中
但是,如果继承不是隐含的,那么作为一种组织性的事情(例如,为了避免很多全局符号),这样做是完全可以的
旁注:JavaScript中压倒性的惯例是,像这样的构造函数最初使用capped
CamelCasing
,以区别于普通函数(使用非cappedCamelCasing
)。之前您有myobj
和subobj
。您已将第一个更改为MyObj
,但如果遵循此约定,您也会将subobj
更改为subobj
(仅限FWIW)。谢谢!是的,我知道它们没有链接或嵌套。这就是我想要的——正如你提到的,我试图限制全局对象。我更新了帖子的标题以反映这一点。