JavaScript中的下划线“_”是什么?

时间:2017-06-24 08:16:47

标签: javascript reactjs react-redux

我正在做一个redux教程,我看到了这样的调用:

this._render();

并将其定义为:

_render() {
    ....
} 

什么是下划线“_”?为什么使用它?

3 个答案:

答案 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();

您仍然可以调用此方法,在类定义之外进行此方法并不被视为良好做法。