我过去喜欢使用 js。现在我很沮丧。我正在尝试 jsDoc 我老板购买的一大块代码。作者没有提供 API,所以我将使用 jsDoc 创建一个。
不幸的是,代码不清晰,它在一个js文件中包含大约10k行代码。我过去使用过对象字面量,这不是对象字面量。参数和函数不用逗号分隔。此外,从未使用过原型(prototype),但使用了 new 运算符。我看过几本书,命名空间似乎是最接近的“风格”。这是程序的一般流程。我的问题遵循这个例子。
(function () {
var global = (function () {return this; } ).call();
global.X = {};
})();
X.init = function(){
X.MyObjectA = new X.FooA();
X.MyObjectB = new X.FooB();
}
X.FooA = function() {
var storeStuff;
do stuff
.
.
function bar(){
var storeSomething;
do something
do somthing else
.
.
moreFunctions(){}
var moreVars;
.
.
}
this.anOccasionalFunctionLiteral = function(){}
.
.
}
X.FooB = function(){
Similar contents of FooB()
}
.
.
.
Continues forever...
所以我的问题是:
这是什么风格!?当我说风格时,我想我的意思是 FooA 和 FooB 是什么?他们是对象吗?上课?
如果嵌套函数不是 X.FooA 或 X.FooB 的成员,我应该给它们什么标题。我被告知嵌套函数(包括 bar())不是对象 FooA 和 FooB 的方法。
如果嵌套在对象 中的函数实际上不是其周围对象的方法,是否可以从任何地方调用它?还是适用正常范围规则?
为了让生活更具可读性和快乐性,我一直将类似于 FooA 和 FooB 的对象归类为构造函数,并将构造函数内部的任何方法(例如 bar())归类为 FooA 和 FooB 的方法。这可能不正确,但至少它是有组织的。有什么建议吗?
感谢您的帮助!
最佳答案
FooA 和 FooB 是构造函数。
嵌套函数是“私有(private)”函数。
FooA内部的bar函数只能在FooA内部调用。
关于javascript - 这是普通函数、构造函数还是两者都不是?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14064044/