带下划线的属性表示私有方法,这是常规都比较遵守的一种代码规范。
js中如果是系统的内部单词(函数名,变量名)一般会使用下划线,这样可以避免同用户定义的单词冲突。冲突后不会报错(有警告),但一定会出现意想不到的错误。不止是js,所有c 和类c 语言都有这个风格
http://blog.csdn.net/shi0090/article/details/45008595 以__proto__为例
百度知道:::https://zhidao.baidu.com/question/488161433844027932.html