javascript oop是什么英文的缩写,js支持面向对象吗

JavaScript018

javascript oop是什么英文的缩写,js支持面向对象吗,第1张

OOP:Object Oriented Programming;面向对象程序设计

js也是支持面向对象的

定义一个对象的最简单的方法

var car = {

        color:"red",

        drive:function() {

            alert(this.color + " car moved")

        }

}

通过构造函数创建一个新对象

function Car() {

    this.color = "red"

    this.drive = function(){

        alert(this.color + " car moved")

    }

}

var car = new Car()

car.drive()

面向对象三大特征:封装、继承、多态

基于封装,引出了js如何创建对象(class、function、原型+闭包创建私有变量等)。这个java和js都差不多

基于继承,引出了js继承的一些知识点,如extends、super、重写重载、abstract(typescript)、interface(typescript)。js主要是基于原型继承,而java主要是基于extends

多态存在的三个必要条件。重写(继承)、重载、向上转型:其中重写,js支持。重载js不支持,可以通过额外处理来支持向上转型,因为js是弱类型语言,不支持数据类型,ts支持(编译阶段)

也就是说对于多态的支持,目前js只支持一种。

总的来说 js的面向对象支持还没有java语言那么丰富严谨,正是因为这些宽松语法,也让js变得更加有趣。但是面向对象oop的思想是一致的。因为oop思想不是固定语言的特性,而是一种思想。随着js不断的更新迭代,相信其语法特性也更加丰富和严谨。

后话:js目前的发展趋势,好像不在跟随传统语言的oop,有点往函数式编程的路上转向