Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Douglas Crockford谈JavaScript中的无类OOP_Javascript_Oop_Ecmascript 6 - Fatal编程技术网

Douglas Crockford谈JavaScript中的无类OOP

Douglas Crockford谈JavaScript中的无类OOP,javascript,oop,ecmascript-6,Javascript,Oop,Ecmascript 6,道格拉斯·克罗克福德(Douglas Crockford)对ES6的“更好的部分”进行了非常好的讨论。除其他事项外,他还提出了一些建议 在这里,他说他停止使用new、Object.create和this,但并没有真正解释替代方法。有人能告诉我这会是什么样子吗?你应该看整个视频,他在网站上解释道 这是一篇返回的文章。这里有一些很好的例子:如果你去了解他告诉你的情况。@AaditMShah:当他自己说他目前的方法完全是“无类面向对象编程”时,很难将他的立场描述为“放弃面向对象编程”,他的整个方法是基

道格拉斯·克罗克福德(Douglas Crockford)对ES6的“更好的部分”进行了非常好的讨论。除其他事项外,他还提出了一些建议


在这里,他说他停止使用
new
Object.create
this
,但并没有真正解释替代方法。有人能告诉我这会是什么样子吗?

你应该看整个视频,他在网站上解释道


这是一篇返回的文章。

这里有一些很好的例子:如果你去了解他告诉你的情况。@AaditMShah:当他自己说他目前的方法完全是“无类面向对象编程”时,很难将他的立场描述为“放弃面向对象编程”,他的整个方法是基于封装数据和行为的对象,对我来说,这听起来很像面向对象编程。我在那个特定的演示中也看不到什么,至少,这表明他在支持函数式编程方面采取了强硬立场。@HMR他谴责ES6类为什么必须冻结对象?这不会停止继承吗?@Quinten:他正在冻结显示API的对象,即带有指向对象方法指针的匿名对象。所以我认为这就像冻结接口一样。@SMeaden,我想我忽略了一点,即解构另一个对象以继承它的方法。我在他的书(javascript如何工作)中读到,冻结主要是出于安全原因,因此方法不能更改。
function constructor(spec) {
  let {member} = spec,
      {other}  = other_constructor(spec),
      method   = function () {
        // accesses member, other, method, spec
      };

  return Object.freeze({
      method,
      other
  });
}