【问题标题】:Property and Backing value naming conventions for Javascript ES6Javascript ES6 的属性和支持值命名约定
【发布时间】:2015-05-15 08:31:54
【问题描述】:

我是一名尝试使用 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

【问题讨论】:

    标签: javascript naming-conventions conventions ecmascript-6


    【解决方案1】:

    如果我没记错的话,我最初是从 google 编码风格文档中挑选的:

    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++,尾随 _ 字符是安全的。

    【讨论】:

    猜你喜欢
    • 2013-06-25
    • 2014-02-10
    • 1970-01-01
    • 2012-12-03
    • 2015-11-21
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多