0

在 JavaScript 中,从构造函数实例化的对象是否有命名约定?

例如,如果我有一个像这样设置的构造函数:

function Dance(style, timing) {
    this.style = style; // for reflection
    this.timing = timing;
}

var waltz = new Dance('waltz' , '3/4');
var rumba = new Dance('rumba' , '4/4');

所以控制台命令看起来像这样:

控制台> waltz.timing
 3/4

控制台> rumba.timing
 4/4

我正在寻找的是一个约定,说华尔兹和伦巴是实例化的对象;像前缀“o”?

var oWaltz = new Dance('waltz' , '3/4');
var oRumba = new Dance('rumba' , '4/4');

在问这个问题之前,我实际上(喘不过气来!)在谷歌上搜索并做了一些功课,并想出了以下内容:

一个。Crockford 的“JavaScript:好的部分”。最值得注意的是,他建议在实际的构造函数中使用大写字母:

有一个约定,所有构造函数都以首字母大写命名(第 49 页)。

很好,但我没有看到关于这些构造函数实例的任何约定。他所有的例子都以“我的”为前缀,就像这样......

var myTango = new Dance('tango' , '4/4');

控制台> myTango.timing
 4/4

...这是一个很好的例子,但不是一个合理的约定。

湾。我还挖了这个帖子,它把“o”前缀称为“匈牙利方言”,也把它称为过时的: “o”作为变量前缀是什么意思?

C。我们也有为包含 jQuery 包装集的变量添加前缀的约定,如下所示,这将选择页面上的所有 <button> 标签,创建一个 jQuery 包装集,并将其分配给 $buttons 变量:

$buttons = $('button');

d。最后,在 Google 上搜索“JavaScript 对象实例前缀”会得到私有函数的下划线“_”约定;在这个例子中,如果我们要添加一个私有原型函数,它可能看起来像这样:

Dance.prototype._lessonCost = function(minutes) { return ($1.50 * minutes); }

再一次,这并没有任何帮助,这将我带到了这里。

如果你做到了这一步,谢谢你的回答:^)我觉得我错过了一些东西;就像我的技术存在根本缺陷一样。

4

1 回答 1

0

我不确定它是否是标准的,但通常对象的实例以小写字母开头,然后是驼峰字母。我不知道任何前缀,并认为这只会导致一堆额外的代码传递给客户端。

var myObject = new MyObject();
于 2012-12-14T19:46:38.260 回答