您好我有以下课程定义:
'use strict'
class Human {
constructor(name, age) {
this._name = name || null;
this.age = age || 'no age defined';
this.rights = ['Human Rights'];
}
get this() {
return 'access denied';
}
set name(name) {
this._name = this._name ? this._name : name;
}
get name() {
return this._name;
}
}
let me = new Human();
console.log(me); // this should return a string "access denied"
我认为可以为整个实例定义一个getter。但这不是,或者? 有谁知道这件事吗?或者是否有其他方法来创建受限制的类?
亲切的问候 马丁答案 0 :(得分:0)
不,但你可以做的是在模块中放入一些代码,只导出部分代码。
// human.js
class SecretHuman {
constructor(name) {
this.name = name;
}
}
let human = new SecretHuman('Bob');
export class Human {
secret() {
console.log(`Secret human is ${human.name}`);
}
}
// test.js
import {Human} from './human';
new Human().secret();