【问题标题】:is javascript now support classes or not and why i feel no stability?javascript 现在是否支持类,为什么我觉得不稳定?
【发布时间】:2017-05-30 07:37:57
【问题描述】:

从几天到现在我很困惑,有些文章说 JavaScript 支持类和许多常见问题解答,StackOverflow 线程和文章说相反? 请明确回答,

JS 是否支持类?

重要的问题是为什么我觉得这种语言没有稳定性?

例如,除了Mozzila Website 和其他一些课程之外,您将找不到任何 js 课程。 在 PHP 中,我总是注意到函数使用、函数支持方面的差异或混淆,但我之前没有遇到过关于编程语言或客户端语言是否支持 OOP 类的混淆。 我希望我能清楚地写出我的困惑。

【问题讨论】:

  • Javascript 出现了爆炸式增长,今天谈论“javascript”时实际上是在谈论多种不同的语言(ES5、ES6、typescript、dart 等)。当使用 EcmaScript 标准的不同变体时,您可能需要使用一组工具来编译(转换)代码。我建议您阅读this blog post on js confusion,然后尝试搜索“js 2016”或类似内容。这是一团糟,但尝试通过选择性地钻研来限制它。
  • 不,JS 中不支持传统类。正如docs 所说,新的 ES6 class 特性是“JavaScript 现有基于原型的继承的语法糖”。
  • @JimL : 我会读回来讨论,暂时谢谢,但是学习之前我真的要指定JS版本吗?

标签: javascript php oop


【解决方案1】:

ECMAScript 2015 中引入的 JavaScript 类是对 JavaScript 现有的基于原型的继承的补充。 JavaScript 类提供了一种更简单、更清晰的语法来创建对象和处理继承,但是class 语法并未向 JavaScript 引入新的面向对象的继承模型。

定义类的一种方法是使用class 声明。要声明一个类,请使用 class 关键字和类名(例如“Car”):

class Car{
  constructor(weight, year) {
    this.weight= weight;
    this.year= year;
  }
}

你首先需要声明你的class然后访问它(不像function的声明),否则你会得到一个ReferenceError

【讨论】:

    【解决方案2】:

    在 JavaScript 中,从 ECMA-Script 2015 及更高版本开始,有一个新的和花哨的 class 语法,但它都是关于原型链顶部的语法糖层。

    查看此代码示例:

    // ECMA-Script 2015 and above
    class A {
    
    }
    
    class B extends A {
    
    }
    
    // ECMA-Script 5 or what's really happening behind the scenes:
    function A() {}
    
    function B() {}
    B.prototype = Object.create(A.prototype);
    

    在 JavaScript 中吗?从高层次的角度来看,是的,他们是。但它不像 C++、C#、Java、Ruby、Python 等其他编程语言中的类型系统......

    进一步阅读

    【讨论】:

      【解决方案3】:

      是的,当然,javascript 支持类。由于javascripts是函数式编程语言,几乎所有的东西都是基于函数的,所以如果你想在javascript中使用类,你必须使用构造函数。构造函数是这样工作的

      function Vehicle(make, model, color) {
              this.make = make,
              this.model = model,
              this.color = color,
              this.getName = function () {
                  return this.make + " " + this.model;
              }`enter code here`
      }
      

      您的其他困惑与关于 javascript 的稳定性有关。所以根据我的观点,javascript 比 php 和其他一些语言更稳定。您可以查看这篇文章以更详细地消除您的困惑。

      https://blog.carbonteq.com/javascripts-importance-and-comparison-with-php/

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-13
      • 2013-02-25
      相关资源
      最近更新 更多