我最近开始学习ES6,最后认真地学习课程。我读到类只是Javascript中Objects的封面,但是,我发现语法最不舒服。
有人可以解释/指向他们在其中解释,类如何模拟的参考,更重要的是我们如何在我们的脑海中将它们映射到Javascript对象操作方式。
class NoteStore { constructor() { this.bindActions(NoteActions); this.notes = []; } }
按照上面的示例代码,我认为类仅仅是构造函数,但是构造函数在构造函数中做什么呢?
作为开始学习Js编程的人,我发现添加类(也是React的类)对Js来说是一个可怕的添加,因此任何帮助都会很棒。
谢谢
基于经典类的编程基于定义一个类,该类包含构造函数方法和其他将由构造对象继承的方法。它的编写方式如您在示例中所示:类是用其名称定义的,然后包含一个构造函数,然后是其他函数。
类定义中的构造方法有些特殊,因为它在对象构造时被调用。由于它很特殊,因此需要以某种方式对其进行标记,并通过将其命名来完成constructor
。
在经典Javascript(基于原型的OOP)中,它的工作方式不同:对象构造函数是一个简单的函数,每个对象实例继承的方法都在.prototype
该函数属性上的对象上定义。基于原型的OOP中的构造函数没有什么特别的,它只是一个函数,真正的魔力在于new
关键字和this
对象构造时的使用。
class
使用构造函数方法以a 的形式表示该表达式仅适合经典OOP开发人员,并且可以提供更紧凑的语法。
class NoteStore { constructor() { this.bindActions(NoteActions); this.notes = []; } bindActions(actions) { .. } }
用简单的Javascript表示的是:
function NoteStore() { this.bindActions(NoteActions); this.notes = []; } NoteStore.prototype.bindActions = function (actions) { .. }