我遇到了包含“#”符号的代码。它是用于什么的?该代码看起来像这样:
class someObject{
#someMethod(){
//do something
}
}
class someObject{
#someMethod(){
//do something
}
}
这是一个实验性的提案。您可以使用#
定义私有JavaScript方法。
了解更多信息,您可以参考MDN文档
类属性默认为公共属性,可以在类外部检查或修改。然而,有一个实验性提案,允许使用哈希
#
前缀定义私有类字段。
您可以通过ES5实现类似的功能(仅出于简单说明的目的),其中您可以模拟类似私有方法的东西(JavaScript本身没有一个私有方法)。
例如:
function someObj() { //assuming this is a class definition
function someMethod() { //private method which is not accessible outside someObj
}
function init() { //initializes some methods or code, private methods can be used here
someMethod();
}
return {
init //only exposes the init method outside
}
}
someObj
的init
方法,该方法可以被称为someObj.init()
,而你的someMethod
将无法在其父方法外部访问。someObj.init(); //works
someObj.someMethod(); //won't be accessible
哈希用于定义私有类字段