在Metameta( @aimingoo/metameta (本地下载))中,可以使用Meta.from()来得到一个映射类,这与上面的方法7是相同的方式:
// 方法8(in metameta) MyAtomObject = Meta.from(Object); atom = new MyAtomObject;
有趣的是,这样得到的“MyAtomObject类”(在Metameta中称为Objext类)将继承所有来自Object.xxx的类方法,例如Object.keys()等。这些方法在元系统中也是可以直接使用的。例如:
// (in metameta) Objext = Meta.from(Object); Objext.keys(new Objext);
2. 关于extends new.target
上面在方法4中提到extends null相当于将MyClass.prototype的原型设为null,——在方法7中也使用了这一技巧——因此事实上在Metameta( @aimingoo/metameta (本地下载))中实现MetaMeta()时,采用的extends new.target也就相当于:
// class MyClass extends new.target ... Object.setPrototypeOf(MyClass.prototype, new.target)
这一技巧用在类的constructor()方法中,返回一个新的类(类声明的表达式)。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。