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. ASP.NET - 受保護的變量
- 4. Ruby - 變量和@variable之間的區別
- 5. 類變量和類實例變量之間的區別?
- 6. jQuery緩存元素,$變量和變量之間的區別?
- 7. if(!!變量)和if(變量)之間的區別?
- 8. PLSQL綁定變量和主機變量之間的區別
- 9. 實現文件中的實例變量 - 私有與受保護
- 10. 私人和受保護的純虛函數之間是否有區別?
- 11. 受保護變量和模型綁定
- 12. ActionScript:在受保護/私有變量中使用'in'?
- 13. 在Tensorflow中,變量和張量之間有什麼區別?
- 14. 最終變量和編譯時間常量之間的區別
- 15. 應該注意私有和受保護的變量,方法和類嗎?
- 16. 區別:%% a和%variable%變量之間的區別是什麼?
- 17. 聲明變量之間的區別
- 18. 兩個SYSTEMTIME變量之間的區別
- 19. bash變量之間的區別
- 20. 受保護的內部和內部受保護有區別嗎?
- 21. 變量===值與值===變量之間的區別?
- 22. Fortran中受保護的全局變量
- 23. 訪問受保護的變量在googletest
- 24. 訪問Android類的受保護變量
- 25. Python。 unicode +變量和u +常量之間的區別?
- 26. 使用消息屬性變量和設置變量變量設置的調用變量之間的區別?
- 27. C++繼承中的保護和私有成員變量
- 28. CA2000的級別變量和方法之間的區別警告
- 29. JavaScript中的局部變量和全局變量之間的區別?
- 30. 變量賦值和傳遞參考之間有什麼區別?
@JoeClay這是C#。儘管大多數TypeScript的答案都是「正確的」,但其中的答案還記錄了TypeScript沒有的訪問修飾符。 – vcsjones
@vcsjones:這是一個公平點,答案的C#特定部分可能會混淆它們。將刪除該標誌。 –