TypeScriptの変数private
とprotected
の違いは何ですか? C#
についても同様の質問がありますが、2つの言語の概念が同一であるかどうかはわかりません。もしそうでなければ、違いを知ることは有益でしょう。TypeScript - プライベート変数とプロテクト変数の違い
6
A
答えて
3
protected
は、C#と非常によく似たTypeScriptで動作します。 TypeScript release notesのような、それを文書化:だけすることができます
The new protected modifier in classes works like it does in familiar languages like C++, C#, and Java. A protected member of a class is visible only inside subclasses of the class in which it is declared
private
のに対し、あなたはすぐにクラス型へのアクセス権を持っています。プライベートメンバーはサブクラスには表示されません。
15
他のOO言語と同じです。
プライベートメソッド/メンバーには、クラス内部からのみアクセスできます。
保護されたメソッド/メンバーには、クラスと拡張クラスの内部からアクセスできます。
class A {
private x: number;
protected y: number;
constructor(x: number, y: number) {
this.x = x;
this.y = y;
}
getX(): number {
return this.x;
}
getY(): number {
return this.y;
}
}
class B extends A {
multiply(): number {
return this.x * this.y;
}
}
クラスA
の両方で(プライベート)this.x
と(保護)this.y
へのアクセスがあることに注意してください。
しかし、クラスB
にthis.y
とthis.x
への唯一のアクセスがあります。このエラーがあります:
Property 'x' is private and only accessible within class A
(あなたがplaygroundでエラーを見ることができます)
どうかの理解することが重要ですが、これは活字体しか真実であるということです。
JavaScriptでこれらのメンバーには、インスタンスへの参照を持つすべての人がアクセスできます。
関連する問題
- 1. 変数のアクセス修飾子:プライベート対プロテクト
- 2. パブリック静的変数とプライベート静的変数の違い
- 3. プロテクト/パブリック変数F#のクロージャー
- 4. バックボーンビューへのプライベート変数とパブリック変数
- 5. TypeScriptリネーム変数
- 6. Typescriptグローバル変数
- 7. 継承とプライベート変数C++
- 8. プライベートvsパブリック変数
- 9. プロパティと変数の違い
- 10. javascriptのオブジェクト変数とプライベート変数にメソッドを適用する
- 11. パブリック変数とプライベート変数の命名規則
- 12. スレッド内のプライベート変数
- 13. OpenMPプライベート変数の場所?
- 14. プライベート変数へのアクセス
- 15. 未定義のプライベート変数
- 16. .net 4.0タスクのプライベート変数
- 17. Angular2; typescript - 変数へのアクセス
- 18. プライベート変数と親オブジェクトへのアクセス
- 19. Cプライベート変数GetとSetメソッド
- 20. jQueryのキャッシュ要素、$変数と変数の違いは?
- 21. ルビのローカル変数とインスタンス変数の違い
- 22. Javascriptのプライベート変数+ Object.create(クロージャ変数への参照)
- 23. 公的変数と私的変数の違い
- 24. Volatile変数とAtomic変数の違いは何ですか?
- 25. 言語変更のプライベートList変数の更新MVVMとXAML
- 26. デコレータでの角度サービスのプライベート変数と関数へのアクセス
- 27. php3とphp変数の違い
- 28. Ruby - 変数と@variableの違い
- 29. イベントオブジェクトと条件変数の違い
- 30. OO PHPはすべてのプライベート変数をページに変数として返す
@JoeClayこれはC#用です。 TypeScriptの答えはほとんど "正解"ですが、そこにはTypeScriptにはないアクセス修飾子も書かれています。 – vcsjones
@vcsjones:それは公正な点です。答えのC#固有の部分がそれらを混乱させる可能性があります。フラグを削除します。 –