JavaScriptの練習:オブジェクト・prototype-based language

JavaScriptのオブジェクトは関数(function)で指定するという。面白いですね。
詳しくはMDNをご覧ください。
続くprototype-based languageというのが面白かったので、備忘録的に残しておきます。
1.まずは普通にオブジェクトの型を設定

function Person(first, last) {
  this.first = first;
  this.last = last;
}

2.次にそのオブジェクトを設定

var person1 = new Person('Luke', 'Skywalker');

3.その後でオブジェクトのプロトタイプに関数を追加

Person.prototype.greeting = function() {
alert('Hello ' + this.first + '!');
}

4.先に設定したオブジェクトの関数を呼び出すと、あとから追加したオブジェクトの関数が反映されている。

person1.greeting();
Hello Luke!

これだけなんですが、新鮮でした。

他の言語だとこれは、オブジェクトというかクラスになるんじゃないの?って思っていたら、ありました。

class Person {
  constructor(first, last, age, gender, interests) {
    this.name = {
      first,
      last
    };
    this.age = age;
    this.gender = gender;
    this.interests = interests;
  }

  greeting() {
    console.log(`Hi! I'm ${this.name.first}`);
  };

  farewell() {
    console.log(`${this.name.first} has left the building. Bye for now!`);
  };
}

オブジェクト・クラスの継承も可能です。そのあたりはこちらをご覧ください。

類似投稿

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.