将构造函数添加到父母的属性中。宾语

时间:2014-06-25 22:18:37

标签: 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指定为另一个带有它自己的原型链的构造函数。

将构造函数嵌套到另一个构造函数中是否可以这样?

1 个答案:

答案 0 :(得分:1)

完全好的这样做,但它并没有做任何特别的事情。特别是,MyObjMyObj.subobj之间没有任何继承关系,MyObj.prototype.thingMyObj.subobj.prototype.thing函数也不会以任何方式链接。

我也不会称之为嵌套。这里唯一的关系是subobj是函数MyObj的属性。它没有以任何范围的方式嵌套在其中......

但这样做完全没问题,作为一种组织事物(例如,为了避免大量的全局符号),只要继承并不意味着暗示。


旁注:JavaScript中的压倒性的约定是像这样的构造函数使用最初限制的CamelCasing,以区别于正常函数(使用非上限camelCasing )。您之前有myobjsubobj。您已将第一个更改为MyObj,但如果遵循此约定,您也会将subobj更改为SubObj(仅限FWIW)。