本文是“JavaScript的元语言”系列中的一篇。其它内容参见:
* JavaScript的元系统
JavaScript中可以通过Object.create(null)
来创建原子,这是非常自然而又易于理解的方式。不过也有一些其它的方法来实现相同的效果,虽然在概念上有所不同,但是它们创建的一样是“原子对象”。
创建原子
- 使用Object.create()
// 方法1
atom = Object.create(null)
- 使用Object.setPrototypeOf()
// 方法2
atom = Object.setPrototypeOf(new Object, null)
// OR
atom = Object.setPrototypeOf({}, null)
- 重置构造器的原型属性
// 方法3
function MyObject() {
// ...
}
Object.setPrototypeOf(MyObject.prototype, null);
atom = new MyObject;
- 重置类的原型
注:“非派生类(没有extends声明的类)”,与将一个普通函数用作构造器时的特性基本一致。
class MyClass {
// ...
}
Object.setPrototypeOf(MyClass.prototype, null