[英]Pass property reference from one class to another
說我有2類Auth
和Client
。 如果我具有Auth.token
屬性,我希望能夠將該屬性作為參考傳遞給Client.token
,這樣,當我更改Auth.token
它也會更改Client.token
的值。
這是一個目前無法使用的簡化示例。
class Auth {
constructor() {
this._token = '123';
}
get token() {
return this._token;
}
updateToken(newToken) {
this._token = newToken;
}
}
class Client {
constructor(token) {
this._token = token;
}
fetch() {
console.log(this._token);
}
}
const auth = new Auth();
const client = new Client(auth.token);
client.fetch();
auth.updateToken('abc');
client.fetch();
您可以將Auth
實例傳遞給Client
實例,並通過Auth
訪問token
。 這將確保對Auth._token
更新將影響Client
:
class Auth { constructor() { this._token = '123'; } get token() { return this._token; } updateToken(newToken) { this._token = newToken; } } class Client { constructor(auth) { this._auth = auth; } fetch() { console.log(this._auth.token); } } const auth = new Auth(); const client = new Client(auth); client.fetch(); auth.updateToken('abc'); client.fetch();
設置全局變量將是實現這一目標的一種方法。 然后,您可以簡單地通過Auth
更新令牌。
let token = '' class Auth { constructor() { token = '123'; } get token() { return token; } updateToken(newToken) { token = newToken; } } class Client { fetch() { console.log(token); } } const auth = new Auth(); const client = new Client(); client.fetch(); auth.updateToken('abc'); client.fetch();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.