Javascript ES6 的属性和支持值命名约定
Property and Backing value naming conventions for Javascript ES6
我是一个C#开发人员,试图进入javascript。 我从 Aurelia 项目开始,它使用 ECMAScript 6。
我学习一门新语言的一部分是理解它的命名约定。 在这个问题中,我询问的是属性的命名约定(ES6 允许使用属性。
在 C# 中,我会定义一个带有如下支持字段的属性:
private string firstName;
public int FirstName
{
get {return firstName;}
set {firstName = value;}
}
我的javascript构造函数看起来像这样:
constructor() {
this.firstName = 'John';
}
我想把这个字段放在上面放一个二传手(这样我就可以在设置名字时做一些其他的事情。
但是,如果我像这样设置我的属性:
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入门指南。
如果我
没记错的话,我最初从谷歌编码风格文档中获得了以下内容:
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++在这方面,尾随 _ 字符是安全的。
相关文章:
- JavaScript命名约定;静态“;类或模块
- 命名约定的Web标准
- Javascript中的变量命名约定;jQuery
- 角度模块依赖项的命名约定
- Javascript ES6 的属性和支持值命名约定
- 自定义咕噜声任务命名约定
- Laravel和变量命名约定(蛇格+骆驼格)
- JavaScript事件命名约定
- backbone.js的命名约定(在rails上)
- .NET 商店中的 JavaScript 命名约定
- 如何使用此命名约定验证表单客户端
- Requirejs、jshint 和命名约定
- Javascript 模拟命名约定
- 使用 nodejs 时的 JavaScript 命名约定
- 不是一个正确的命名约定,但它工作正常,如果它有效,命名约定如何以及需要什么
- 在html/css/javascript的命名约定中不使用连字符时
- NPM脚本命名约定
- 用于区分节点JS中模块/实例/方法变量的命名约定
- 本地变量的常规javascript jQuery命名约定是什么
- JavaScript中构造函数参数的命名约定