Javascript ES6的属性和支持值命名约定

时间:2015-03-12 23:44:47

标签: javascript naming-conventions conventions ecmascript-6

我是一名试图进入javascript的C#开发人员。我从使用ECMAScript 6的Aurelia项目开始。

我学习的一部分新语言正在理解其命名惯例。在这个问题中,我问的是属性的命名约定(ES6允许使用属性。)

在C#中,我将定义一个带有支持字段的属性,如下所示:

private string firstName;
public int FirstName
{
     get {return firstName;}
     set {firstName = value;}
}

我的javascript构造函数如下所示:

constructor()    {
    this.firstName = 'John';    
}

我想接受这个字段并在其上放置一个setter(所以当设置第一个名字时我可以做其他一些事情。)

但是,如果我像这样设置我的属性:

set firstName(name) {
    this.firstName = name;
}

然后我正确得到一个堆栈溢出异常(因为setter调用setter(它们都是小写))。

那么,我应该像在C#中那样大写java脚本属性吗?像这样:

constructor()    {
    this.FirstName = 'John';    
}

set FirstName(name) {
    this.firstName = name;
}

get FirstName() {
    return this.firstName;
}

这符合我的C#编码风格,但我看到的所有java脚本示例都只使用了类名称的大写。

Java Script / ECMAScript 6如何区分支持字段和属性?

注意:我的代码示例来自Aurelia getting started guide

1 个答案:

答案 0 :(得分:1)

如果我没记错的话,我最初从谷歌编码风格文档中选择了以下内容:

set firstName(first_name_str) {
    this.firstNameStr_ = first_name_str;
    if (typeof this.firstNameStr_ !== 'string') throw new TypeError();
}

get firstName() {
    return this.firstNameStr_;
}

JavaScript倾向于在这方面反映C ++,尾随_字符是安全的。