简体   繁体   English

es6 javascript setter函数外部构造

[英]es6 javascript setter function outside constuction

is it possible to call the setter function outside the constructor class? 是否可以在构造函数类之外调用setter函数?

ie i have the following class 即我有以下课程

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

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

when i call 当我打电话

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

i see the follwing error: 我看到以下错误:

 Uncaught TypeError: example.partner is not a function

To invoke a setter/getter, it has to look from the outside as if you're directly setting or retrieving a property on the object (not calling 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); 

Note that the parameter that the setter sees is the value that looks like got "assigned" to the property outside. 请注意,setter看到的参数是看起来像已“分配”到外部属性的值。

这些setter和getter使您可以直接使用属性(无需使用括号)

friends.partner = 75;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM