Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将构造函数添加到';家长';对象_Javascript - Fatal编程技术网

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
,以区别于普通函数(使用非capped
CamelCasing
)。之前您有
myobj
subobj
。您已将第一个更改为
MyObj
,但如果遵循此约定,您也会将
subobj
更改为
subobj
(仅限FWIW)。

谢谢!是的,我知道它们没有链接或嵌套。这就是我想要的——正如你提到的,我试图限制全局对象。我更新了帖子的标题以反映这一点。