Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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_Instance_Naming_Prefix_Convention - Fatal编程技术网

JavaScript构造函数实例化了对象前缀约定

JavaScript构造函数实例化了对象前缀约定,javascript,instance,naming,prefix,convention,Javascript,Instance,Naming,Prefix,Convention,在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'); 因此,控制台命令如下所示:

在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');
因此,控制台命令如下所示:

Dance.prototype._lessonCost = function(minutes) { return ($1.50 * minutes); }
控制台>华尔兹计时
3/4

控制台>伦巴定时
4/4

我要找的是一个惯例,说华尔兹和伦巴是实例化的对象;比如用“o”作为前缀

在问这个问题之前,我用谷歌搜索了一下,做了一些家庭作业,并得出了以下结论:

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

有一个惯例,所有构造函数都以大写字母命名(第49页)

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

var myTango = new Dance('tango' , '4/4');
控制台>我的探戈。计时
4/4

…这是一个很好的例子,但不是一个合理的惯例

b。我还找到了这条线索,它把“o”前缀称为“匈牙利方言”,也把它称为过时:

c。我们还有一个惯例,即在包含jQuery包装集的变量前面加上“$”前缀,如下所示,这将选择页面上的所有标记,创建一个jQuery包装集,并将其分配给$buttons变量:

$buttons = $('button');
d。最后,在谷歌上搜索“JavaScript对象实例前缀”就可以得到私有函数的下划线“10;”约定;在本例中,如果我们要添加一个私有原型函数,它可能如下所示:

Dance.prototype._lessonCost = function(minutes) { return ($1.50 * minutes); }
这也没什么帮助,这让我来到这里


如果你能做到这一点,谢谢你的回答:^)我觉得我错过了什么;就像我的技术有一个基本缺陷一样。

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

var myObject = new MyObject();

这样的前缀有什么意义?JavaScript中的大多数值都是对象(或假装为对象,如字符串或数字)。例如,想象一个名为“ScreetedArgVal”的实例,这是什么?相比之下,以“oDelineatedArgVal”为例,我可以立即看到这是一个构造函数的实例。是的,这是(a)上面,以及Crockford在他书中的例子中所做的。它对于代码段示例很有效,但对于生产环境来说似乎有点学术性。我认为您缺少的是实例以小写字母开头。使用这个约定,每次看到一个小写字母作为实例时,您都会知道。如果你看Java中繁重的OO代码,你会一直看到这一点。用于初始化实例的构造函数,该实例的名称与构造函数的大小写相同。