見出し画像

それでもついていきます! GAS

もう進むしかないので。

こんにちは。サキナオコです^^
今日も蒸し風呂陽気。でも風が少し秋めいてます。

いつもご覧いただき、スキ、フォロー、コメントまでいただき、
本当にほんとうにどうもありがとうございます*^o^*
今日また進もうという気力いただきました!^o^/

さて、S気味テキストコーチに翻弄されつつ、6章もあと少しで終わりです。
本日は静的メンバーです。
予想を裏切らない誤変換にドギマギしながら始めます。

だいたい、メンバーというのがよくわかっていません。
またもやパラパラと戻ります。ああ、ありました。
プロパティとメソッドの総称のようですね。はい。

で、静的メンバーとは。
インスタンス化をしなくても直接的に使用できるプロパティとメソッドを定義できるもの、それぞれ静的プロパティと静的メソッドと呼び、それをまとめたものだと。はぃ…

静的プロパティの記述はclass文の後に。
静的メソッドはclass文内にstaticキーワードを付与したメソッド定義を記述。その他、class文のあとに関数リテラルを代入しても静的メソッドの定義は可能。

うん、ええと、サンプルを元にして上にあるような関数リテラルとやらを代入したものに書き換え挑戦してみます。

function myFunction_8_21_3() {
 class Person{
   constructor(name,age){
     this.name = name;
     this.age = age;
   }
     
 }  // class end here
 
 Person.greet = function(name,age){ // 静的メソッドの定義として関数リテラルの代入してみた
 console.log(`Hello! I'm ${name},and ${age}`);
 }

 Person.job='Illustrator';
 Person.greet('Saki',30); // age...
 console.log(Person.job);
}
// Hello! I'm Saki,and 30
// Illustrator

エラーも出ず、うまくいきました。
でも、「だからなんなんだろう?」という疑問をぬぐいきれません。

そのうちわかる日が来るのだと信じます。

その他、prototypeメソッドの変更を学習。

function myFunction_8_21_2() {
 class Person{
   constructor(name,age){
     this.name = name;
     this.age = age;
   }

   greet(name){
     console.log(`Hello!I'm ${name}!`);  // 1.元々のメソッド
   }
 }
 
 Person.prototype.greet = function(){ // 2.ここでprototypeメソッドが変更されている
   console.log(`I'm here.${this.name}.`);
 }

 const p = new Person('Naoko',30); // こら
 p.greet();

 console.log(Person.prototype.greet.toString());// prototype methodが変更された状態
 console.log(p.greet.toString());  // instance p = prototype method
}
// I'm here.Naoko.
// function(){ // 2.ここでprototypeメソッドが変更されている
   console.log(`I'm here.${this.name}.`);
 }
// function(){ // 2.ここでprototypeメソッドが変更されている
   console.log(`I'm here.${this.name}.`);
 }

ははぁ、2のところですっかり変更されているわけですね。…そうなんですかぁ。。

あっ!先日学習したインスタンスのメソッドの変更ではprototypeプロパティは変更されてなかったような。

ああ、それはただのインスタンスのメソッドの変更だからprototype プロパティは変わらなかったのかぁ。

静的メンバーの追加の応用とやらだとprototypeプロパティを変更してしまえるのですね。ふう〜ん………まぁ、きっとこれを活用する日がきますよね!^^

で、6章が終了。もうすぐテキストの3分の1に到達します!

次は7章、組み込みオブジェクトです。
はい、今日はここまで!

この記事が気に入ったらサポートをしてみませんか?