面向对象编程
Java 和 JavaScript 都是面向对象的语言。虽然 Java 需要在整个代码库中使用对象,但 JavaScript 更宽容,允许在不使用对象的情况下进行简单的线性编程。两种语言都允许继承和多态——面向对象设计的主要内容。由于语言的动态特性以及表达此类结构所需的相对复杂的语法,JavaScript 对此更加尴尬。
函数式编程
JavaScript 中的函数是一等公民。它们被视为对象,可以传递给其他函数,并且可以在必要时携带自己的成员变量。这种灵活性允许一些非常有趣的解决方案和设计模式,这些解决方案和设计模式仅适用于支持函数式编程的语言。
Java 对函数式编程有自己的答案。Java 在 Java 1.8(“Java 8”)中引入了 lambda,这是一种过滤和操作数据集合的强大方法。话虽如此,lambdas 的适用性仅限于数据操作,并且不会超出此范围。