class ParentIndex{}
//extends继承
//class Index extends ParentIndex
class Index{
#name1 = "aaaa"; //私有属性
_const = 1; //实例属性
const2 = 2; //实例属性
static age = 5; //静态属性
static #age = 15; //静态私有属性
//构造方法
constructor(){
//new.target类自己
console.log(new.target.name+" CLASS START")
//name 属性
console.log(Index.name+" CLASS START")
}
//取值函数
get prop() {
console.log('getter');
}
//取值函数
set prop(value) {
console.log('setter: '+value);
}
//Generator 方法
* funX(){
yield "funx ok"
return "";
//console.log("funx ok");
}
//上面代码中,Foo类的Symbol.iterator方法前有一个星号,表示该方法是一个 Generator 函数。Symbol.iterator方法返回一个Foo类的默认遍历器,for...of循环会自动调用这个遍历器。
//公有方法
fun1(){
console.log("fun1 ok");
}
//私有方法
#fun(){
console.log("#fun ok");
}
//静态方法
static fun2(){
console.log("fun2 ok");
}
//静态私有方法
static #fun2(){
console.log("#fun2 ok");
}
fun3(){
//检测是否存在#name1私有属性
console.log(#name1 in this)
}
fun2(){
console.log(this._const)
console.log(this.const2)
console.log(this.#name1)
console.log(Index.age)
console.log(Index.#age)
this.fun1();
this.#fun()
Index.fun2()
Index.#fun2()
}
}
let indexObj = new Index();
indexObj.fun2();
indexObj.fun3();
indexObj.prop = 1;
indexObj.prop;
indexObj.funX();