0
您好我有下面的类定义:ecma6阻止访问整个实例
'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整个实例。但这不是,或者? 有没有人知道这件事?还是有其他方法来创建受限制的类?
亲切的问候 马丁
我认为这里的getter是为'me'里面的'this'设置的,并且不会引用'me'本身。如果你尝试'我['this']'你会得到“拒绝访问” – Vivek
当你'new'一个类你调用它的'constructor'而不是'get this()'(这不是一个保留的ES6类方法如'constructor')。 – sdgluck
整个实例的getter *是*构造函数*。你能指定一个*受限制类的含义吗? – CodingIntrigue