簡體   English   中英

es6 javascript setter函數外部構造

[英]es6 javascript setter function outside constuction

是否可以在構造函數類之外調用setter函數?

即我有以下課程

class example {
  constructor() {
    this._partner = 0;
   }
   get partner() {
    return this._partner;
   }

  set partner(id) {
    this._partner = id;
  }
}

當我打電話

friends = new example();
freinds.partner(75);

我看到以下錯誤:

 Uncaught TypeError: example.partner is not a function

要調用一個setter / getter,它必須從外部 ,就像您是直接在對象上設置或檢索一個屬性(而不是調用一個函數)一樣:

 class example { constructor() { this._partner = 0; } get partner() { console.log('getter running'); return this._partner; } set partner(id) { console.log('setter running'); this._partner = id; } } friends = new example(); console.log('about to assign to .partner'); friends.partner = 75; console.log('about to retrieve .partner'); console.log(friends.partner); 

請注意,setter看到的參數是看起來像已“分配”到外部屬性的值。

這些setter和getter使您可以直接使用屬性(無需使用括號)

friends.partner = 75;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM