JavaScriptにPrivateがありますか?
5201 ワード
ないじゃないですか。
そうかと思ったらstage 4 proposal
こつこつ!
class ClassWithPrivateField {
#privateField;
constructor() {
this.#privateField = 42;
this.#undeclaredField = 444; // Syntax error
}
#privateMethod() {
return 'hello world';
}
getPrivateMessage() {
return this.#privateMethod();
}
}
const instance = new ClassWithPrivateField()
instance.#privateField === 42; // Syntax error
console.log(instance.getPrivateMessage());
class構文を使用する場合は、フィールドまたはメソッドの前にハッシュタグを付けるだけです.以前オドカを実現したことがありますか?
以前もprivateが必要でしたが、どうやってやったのか簡単に理解してみましょう.
低得点会議
function Constructor() {
this._privateField = 'cant touch this';
this.publicField = 'touch this'
}
メンバー名に低得点を加えたときに外部から近づけない試合をよく使う.読みやすさもよく、簡単ですが、実はプライベートではないという問題があります.Closerに隠す
function Constructor() {
const privateField = 'cant touch this';
this.publicField = 'touch this';
};
const instance = new Constructor();
instance.privateField // undefined
少し紛らわしいですが、Closerで隠すことができます.Closerの代表的な使い方ですが、多少混同があり、これを加えると毒性が低下すると思います.Reference
この問題について(JavaScriptにPrivateがありますか?), 我々は、より多くの情報をここで見つけました https://velog.io/@mgm-dev/JavaScript에-Private이-있다テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol