JS面向对象
JavaScript 面向对象
JavaScript 是一门面向对象的编程语言,支持创建对象、继承和多态等特性。
1.对象基础
首先我们需要了解 JavaScript 中的对象。在 JavaScript 中,几乎所有东西都是对象。对象是一组无序的属性集合,每个属性都具有键和值。例如:
1 | var obj = { |
上述代码定义了一个对象 obj,包含了名字、年龄和方法 sayHello。我们可以使用 . 运算符获取对象的属性值,或者直接调用对象方法。
2.对象构造函数
通过构造函数创建对象是一种常见的面向对象方式,在 JavaScript 中也可以类比 Java 中的类。
1 | function Person(name, age) { |
上述代码定义了一个 Person 构造函数,构造函数有两个参数: name 和 age。在构造函数中,通过 this 关键字来指代类似于 Java 中的 this,使用 . 运算符给对象添加成员属性和方法。最后通过 new 操作符创建一个 Person 类的实例对象。
3.原型链
在 JavaScript 中,每个对象都有一个内部私有属性 [[prototype]],指向其原型。原型本质上也是一个对象,如果在原型中定义了某个方法或属性,则所有实例对象都可以继承它并调用它。
1 | function Person(name, age) { |
上述代码通过在 Person 构造函数的原型对象上定义了成员方法 sayHello。这样,所有使用 new 操作符创建出来的 Person 实例对象都可以通过原型链访问到这个方法,并调用它。
4.类继承
子类可以继承父类的属性和方法,并且还可以重写父类的方法从而实现多态。在 JavaScript 中,我们可以通过以下方式实现继承:
1 | // 定义一个人类 Person |
上述代码中,通过在子类 Student 的构造函数中,使用 call() 调用父类 Person 中被继承的属性和方法。然后再通过 Object.create() 继承父类的原型对象,并将子类 Student 的原型对象的构造函数指向自身。最后就可以重写父类的方法,在子类中实现多态了。
结论:
到这里我们已经对 JavaScript 面向对象编程有了一个初步印象:对象基础、构造函数、原型链和类继承等。需要注意的是,JavaScript 面向对象方式非常灵活且易用,而且不同于其他面向对象语言。
