[英]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.