【问题标题】:JS: Function vs Class differences [duplicate]JS:函数与类的差异[重复]
【发布时间】:2020-04-18 00:46:29
【问题描述】:

我一直依赖函数,但我并不想理解类和函数之间的区别。这两者在实例化节点时有区别吗?在控制台中记录它们时,它们似乎记录相同,但我试图查看是否有任何我没有看到的不同之处。

function Node(data, left, right) {
    this.data = data;
    this.left = left;
    this.right = right;
}
let foo = new Node(55);

----------
class Node {
   constructor(data,left,right) {
      this.node = data;
      this.left = left;
      this.right = right;
   }
}
let foo = new Node(55);

【问题讨论】:

  • 不,不是。 class 基本上是语法糖。
  • 在规范中引入class 更多是为了提供与其他面向对象语言的桥梁,使其更易于访问。功能上没有区别。

标签: javascript


【解决方案1】:

类语法基本上只是语法糖。所以它是一样的。但是,您必须使用 new 调用该类,而无需调用构造函数。

【讨论】:

  • 感谢@lux。没有new怎么调用函数?我尝试在示例中删除 new 并且变量 foo 未定义
  • 它未定义,因为该函数不返回任何内容。如果function Node 有一个return 语句,那么foo 将被定义。
  • 你可以做const obj = {}; Node.call(obj, 55) 然后obj.data 将是55。
猜你喜欢
  • 2015-03-26
  • 2018-11-26
  • 2016-09-03
  • 2013-07-12
  • 2013-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-04
相关资源
最近更新 更多