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!`);
};
}
オブジェクト・クラスの継承も可能です。そのあたりはこちらをご覧ください。