"

欧冠竞猜买球官网-欧冠网上买球官网拥有全球最顶尖的原生APP,每天为您提供千场精彩体育赛事,欧冠竞猜买球官网-欧冠网上买球官网更有真人、彩票、电子老虎机、真人电子竞技游戏等多种娱乐方式选择,欧冠竞猜买球官网-欧冠网上买球官网让您尽享娱乐、赛事投注等,且无后顾之忧!

"
首頁 > 修飾符 public、 private 和 protected和區別

修飾符 public、 private 和 protected和區別

互聯網 2021-04-23 13:03:44
?

TypeScript 可以使用三種訪問修飾符(Access Modifiers),分別是 public、private 和 protected。

public 修飾的屬性或方法是公有的,可以在任何地方被訪問到,默認所有的屬性和方法都是 public 的private 修飾的屬性或方法是私有的,不能在聲明它的類的外部訪問protected 修飾的屬性或方法是受保護的,它和 private 類似,區別是它在子類中也是允許被訪問的

下面舉一些例子:

class Animal {public name;public constructor(name) {this.name = name;}} let a = new Animal('Jack');console.log(a.name); // Jacka.name = 'Tom';console.log(a.name); // Tom

?

上面的例子中,name 被設置為了 public,所以直接訪問實例的 name 屬性是允許的。

很多時候,我們希望有的屬性是無法直接存取的,這時候就可以用 private 了:

class Animal {private name;public constructor(name) {this.name = name;}} let a = new Animal('Jack');console.log(a.name); // Jacka.name = 'Tom'; // index.ts(9,13): error TS2341: Property 'name' is private and only accessible within class 'Animal'.// index.ts(10,1): error TS2341: Property 'name' is private and only accessible within class 'Animal'.

?

需要注意的是,TypeScript 編譯之后的代碼中,并沒有限制 private 屬性在外部的可訪問性。

上面的例子編譯后的代碼是:

var Animal = (function () {function Animal(name) {this.name = name;}return Animal;}());var a = new Animal('Jack');console.log(a.name);a.name = 'Tom';

?

使用 private 修飾的屬性或方法,在子類中也是不允許訪問的:

class Animal {private name;public constructor(name) {this.name = name;}} class Cat extends Animal {constructor(name) {super(name);console.log(this.name);}} // index.ts(11,17): error TS2341: Property 'name' is private and only accessible within class 'Animal'.

?

?

而如果是用 protected 修飾,則允許在子類中訪問:

class Animal {protected name;public constructor(name) {this.name = name;}} class Cat extends Animal {constructor(name) {super(name);console.log(this.name);}}

?

?
免責聲明:非本網注明原創的信息,皆為程序自動獲取互聯網,目的在于傳遞更多信息,并不代表本網贊同其觀點和對其真實性負責;如此頁面有侵犯到您的權益,請給站長發送郵件,并提供相關證明(版權證明、身份證正反面、侵權鏈接),站長將在收到郵件12小時內刪除。
欧冠竞猜买球官网-欧冠网上买球官网 <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>