我正在做一个redux教程,我看到了这样的调用:
this._render();
并将其定义为:
_render() {
....
}
什么是下划线“_”?为什么使用它?
答案 0 :(得分:8)
这是私有方法和变量的约定。在JavaScript中,没有真正的类隐私。
这意味着您不应该使用这些方法(以“_
”开头)。当然,技术上你可以,但“_
”意味着你不应该。
答案 1 :(得分:4)
下划线(_
)只是变量/函数名称的普通有效字符,它不带任何附加功能。
但是,使用下划线将变量/函数标记为私有是一个很好的约定。您可以查看Underscore prefix for property and method names in JavaScript进行之前的讨论。
答案 2 :(得分:1)
下划线只是标识符中的有效字符,因此方法的名称为_render
。
它是没有访问修饰符的语言中的常见模式,使用下划线表示私有方法。在C#等语言中,它有访问修饰符,我可以将方法定义为:
private void Foo() {}
然后只能从定义它的类中调用方法Foo
。
在JavaScript中,您无法执行此操作,因此它是一种典型的设计模式,可以使用_
为方法添加前缀,以表明应将其视为私有。
this._foo();
您仍然可以调用此方法,在类定义之外进行此方法并不被视为良好做法。