class MyClass{
constructor(){
}
get prop(){
return 'getter';
}
set prop(value){
console.log('setter: '+value);
}
}
let inst=new MyClass();
inst.prop=123;
console.log(inst.prop)
class Logger{
constructor(){
this.printName=this.printName.bind(this);
}
printName(name='there'){
this.print(`Hello ${name}`);
}
print(text){
console.log(text);
}
}
const logger=new Logger();
const {printName}=logger;
printName();
class Foo{
static classMethod(){
return 'hello';
}
}
console.log(Foo.classMethod());
let foo=new Foo();
class Bar extends Foo{
}
console.log(Bar.classMethod())
class Person{
constructor(name){
if(new.target===undefined){
throw new Error('必须使用new命令生成实例')
}
this.name=name;
}
}
var person=new Person('zhangsan');
var notAPerson=Person.call(person,'lisi');
console