我应该如何命名我的javascript库函数,使它们与普通的旧javascript不同?
我正在用js编写一个自定义UI生成器。它使用工厂的实现来构建元素。为了确保很明显哪些函数是库的一部分,哪些函数是普通老javascript的一部分,我使用了我应该如何命名我的javascript库函数,使它们与普通的旧javascript不同?,javascript,Javascript,我正在用js编写一个自定义UI生成器。它使用工厂的实现来构建元素。为了确保很明显哪些函数是库的一部分,哪些函数是普通老javascript的一部分,我使用了function\u FunctionName()的命名约定。然而,我发现总是在工厂里做。\u FunctionName() 我应该删除命名约定(函数FunctionName())还是坚持它 关于这样创建库,是否有命名约定的通用/最佳实践 编辑: 下面是javascript中一些非常常见的约定 常数 通常在所有的大写字母中加下划线 var M
function\u FunctionName()
的命名约定。然而,我发现总是在工厂里做。\u FunctionName()
我应该删除命名约定(函数FunctionName()
)还是坚持它
关于这样创建库,是否有命名约定的通用/最佳实践
编辑:
下面是javascript中一些非常常见的约定 常数 通常在所有的大写字母中加下划线
var MAX_COUNT = 100;
var BASE_URL = "http://example.com/api/";
变量
通常在较低的情况下
var currentCount = 0;
var userName = "timrwood";
function Factory(){}
var factory = new Factory();
Factory.prototype.getPanel = function(){};
var factory = new Factory();
var panel = factory.getPanel();
建设者
通常大写
var currentCount = 0;
var userName = "timrwood";
function Factory(){}
var factory = new Factory();
Factory.prototype.getPanel = function(){};
var factory = new Factory();
var panel = factory.getPanel();
方法
通常在较低的情况下
var currentCount = 0;
var userName = "timrwood";
function Factory(){}
var factory = new Factory();
Factory.prototype.getPanel = function(){};
var factory = new Factory();
var panel = factory.getPanel();
私有变量/方法
通常在低等级的情况下,带有一个分数前缀
Factory.prototype._fetchPanel = function(){};
Factory.prototype.getPanel = function() {
return this._fetchPanel();
}
下面是javascript中一些非常常见的约定 常数 通常在所有的大写字母中加下划线
var MAX_COUNT = 100;
var BASE_URL = "http://example.com/api/";
变量
通常在较低的情况下
var currentCount = 0;
var userName = "timrwood";
function Factory(){}
var factory = new Factory();
Factory.prototype.getPanel = function(){};
var factory = new Factory();
var panel = factory.getPanel();
建设者
通常大写
var currentCount = 0;
var userName = "timrwood";
function Factory(){}
var factory = new Factory();
Factory.prototype.getPanel = function(){};
var factory = new Factory();
var panel = factory.getPanel();
方法
通常在较低的情况下
var currentCount = 0;
var userName = "timrwood";
function Factory(){}
var factory = new Factory();
Factory.prototype.getPanel = function(){};
var factory = new Factory();
var panel = factory.getPanel();
私有变量/方法
通常在低等级的情况下,带有一个分数前缀
Factory.prototype._fetchPanel = function(){};
Factory.prototype.getPanel = function() {
return this._fetchPanel();
}
已经存在一个问题,因此可以链接到有关Javscript编码约定(包括命名)的良好文档:
- 使用名称空间(使用初始大写名称)
PanelFactory
不会与普通Javascript冲突。如果您正在制作供第三方使用的公共API,它可能会与其他库发生冲突,不过:
var MyApp = MyApp || {};
MyApp.__PanelFactory = function () { // ...
- 去掉所有函数名之前的下划线(
)。
toString
etc):
- 使用初始大写名称命名对象构造函数,但使用初始小写名称命名全局或命名空间范围的函数和实例范围的函数:
MyApp.PanelFactory = function () {
// ...
function getPanel(id) {
//etc
}
- 使用首字母小写名称命名局部变量:
已经存在一个问题,因此可以链接到有关Javscript编码约定(包括命名)的良好文档:
- 使用名称空间(使用初始大写名称)
PanelFactory
不会与普通Javascript冲突。如果您正在制作供第三方使用的公共API,它可能会与其他库发生冲突,不过:
var MyApp = MyApp || {};
MyApp.__PanelFactory = function () { // ...
- 去掉所有函数名之前的下划线(
)。
toString
etc):
- 使用初始大写名称命名对象构造函数,但使用初始小写名称命名全局或命名空间范围的函数和实例范围的函数:
MyApp.PanelFactory = function () {
// ...
function getPanel(id) {
//etc
}
- 使用首字母小写名称命名局部变量:
为什么要将工厂函数设置为全局函数,而不是将它们限定到特定的命名空间?(例如,就像jQuery方法如何在
$
或$.fn
下运行一样)@KirkWoll-但是,javascript仍然允许将基本的.toString
、构造函数
等应用于这些方法中的任何一种。你怎么知道它们是裸函数?@TravisJ:如果它们的作用域是一个名称空间,我想它们已经是可微的了。我认为在调用它们时必须指定名称空间(?)@MerlynMorgan-Graham-只有在使用var factory=new factory()
@TravisJ:So初始化工厂后才能访问它们,就像var factory=new factory()代码><代码>工厂.DoSomething()代码>?你的问题让你看起来像是在谈论不绑定到对象实例的函数。为什么你要将工厂函数设置为全局函数,而不是将它们限定到特定的命名空间?(例如,就像jQuery方法如何在$
或$.fn
下运行一样)@KirkWoll-但是,javascript仍然允许将基本的.toString
、构造函数
等应用于这些方法中的任何一种。你怎么知道它们是裸函数?@TravisJ:如果它们的作用域是一个名称空间,我想它们已经是可微的了。我认为在调用它们时必须指定名称空间(?)@MerlynMorgan-Graham-只有在使用var factory=new factory()
@TravisJ:So初始化工厂后才能访问它们,就像var factory=new factory()代码><代码>工厂.DoSomething()代码>?你的问题让你看起来像是在谈论不绑定到对象实例的函数。+1是一个很好的概述,但我有一个评论。虽然有时会对私有字段使用\uuuu
,但实际上在语义上有更好的方法来声明私有字段-a