【JavaScript】面向对象

以下内容为学习记录,可以参考 MDN 原文。

环境

  • vscode 1.46
  • Microsoft Edge 83

构造函数和对象

有些人认为 JavaScript 不是真正的面向对象的语言,比如它没有像许多面向对象的语言一样有用于创建class类的声明。
JavaScript 用一种称为构建函数的特殊函数来定义对象和它们的特征。构建函数非常有用,
因为很多情况下您不知道实际需要多少个对象(实例)。构建函数提供了创建您所需对象(实例)的有效方法,
将对象的数据和特征函数按需联结至相应对象。

不像“经典”的面向对象的语言,从构建函数创建的新实例的特征并非全盘复制,
而是通过一个叫做原形链的参考链链接过去的。所以这并非真正的实例,
严格的讲,JavaScript 在对象间使用和其它语言的共享机制不同。

定义对象

    function Person(first, last, age, gender, interests) {
      this.name = {
        'first': first,
        'last': last
      };
      this.age = age;
      this.gender = gender;
      this.interests = interests;
      this.bio = function() {
        alert(this.name.first + ' ' + this.name.last + ' is ' + this.age + ' years old. He likes ' +
          this.interests[0] + ' and ' + this.interests[1] + '.');
      };
      this.greeting = function() {
        alert('Hi! I\'m ' + this.name.first + '.');
      };
    };

使用对象

    var person = {};
    var person1 = new Person('Bob', 'Smith', 32, 'male', ['music', 'skiing']);

    console.log(person1);
    console.log(person1.interests);

创建对象的其他方式

到现在为止,我们了解到了两种不同的创建对象的方式:声明一个对象的语法,与使用构造函数。

Object()构造函数

var person1 = new Object();

使用create()方法

另外一种访问属性的方式是使用括号表示法(bracket notation)。

var person2 = Object.create(person1);
原文地址:https://www.cnblogs.com/jiangbo44/p/13337718.html