Douglas Crockford在JavaScript中的Class Free OOP

dpr*_*ren 45 javascript oop ecmascript-6

道格拉斯·克罗克福德(Douglas Crockford)对ES6的"更好的部件"进行了非常好的演讲.除此之外,他鼓励从原型继承转向支持无类O​​OP.

在这里,他说他停止使用new,Object.createthis,但并没有真正解释替代方案.任何人都可以告诉我这看起来怎么样?

Mat*_*ics 46

您应该观看整个视频,他将在稍后的视频中解释.

function constructor(spec) {
  let {member} = spec,
      {other}  = other_constructor(spec),
      method   = function () {
        // accesses member, other, method, spec
      };

  return Object.freeze({
      method,
      other
  });
}
Run Code Online (Sandbox Code Playgroud)

它是显示模块模式返回冻结对象.

  • @SMeaden,我认为我错过了解构另一个对象以继承它的方法的这一点。我在他的书(JavaScript的工作原理)中读到,冻结主要是出于安全原因,因此无法更改方法。 (2认同)