TypeScript中private
和protected
變量之間的區別是什麼? C#
存在類似的問題,但我不確定兩種語言的概念是否相同。如果不是,那麼瞭解這些差異將會很有用。TypeScript - 私有變量和受保護變量之間的區別
6
A
回答
3
protected
在TypeScript中工作非常類似於它從C#中所做的。該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
這與其他面嚮對象語言相同。
私人方法/成員只能從課堂內部訪問。
受保護的方法/成員可以從課程內部訪問,也可以擴展課程。
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. 公共和私有變量之間的區別
- 4. C#私有變量&java私有變量getter&setter - 區別?
- 5. ASP.NET - 受保護的變量
- 6. Ruby - 變量和@variable之間的區別
- 7. Ruby的類變量和實例變量之間的區別
- 8. PLSQL綁定變量和主機變量之間的區別
- 9. jQuery緩存元素,$變量和變量之間的區別?
- 10. if(!!變量)和if(變量)之間的區別?
- 11. 類變量和類實例變量之間的區別?
- 12. %變量%和!變量之間的區別!批處理文件
- 13. 實現文件中的實例變量 - 私有與受保護
- 14. 如何使用受保護的/私有靜態變量?
- 15. 私人和受保護的純虛函數之間是否有區別?
- 16. 受保護變量和模型綁定
- 17. ActionScript:在受保護/私有變量中使用'in'?
- 18. 在Tensorflow中,變量和張量之間有什麼區別?
- 19. 最終變量和編譯時間常量之間的區別
- 20. 應該注意私有和受保護的變量,方法和類嗎?
- 21. 是否受保護的變量在繼承的類變成私有?
- 22. 區別:%% a和%variable%變量之間的區別是什麼?
- 23. bash變量之間的區別
- 24. 聲明變量之間的區別
- 25. 聲明變量之間的區別
- 26. 兩個SYSTEMTIME變量之間的區別
- 27. 受保護的內部和內部受保護有區別嗎?
- 28. 變量===值與值===變量之間的區別?
- 29. 使用ReflectionClass的受保護的變量
- 30. 訪問Android類的受保護變量
@JoeClay這是C#。儘管大多數TypeScript的答案都是「正確的」,但其中的答案還記錄了TypeScript沒有的訪問修飾符。 – vcsjones
@vcsjones:這是一個公平點,答案的C#特定部分可能會混淆它們。將刪除該標誌。 –