
③「Vol.4 オブジェクト:ノンプロ研初心者向けプログラミング講座【GASコース第9期】
ヘッダー画像は夏になるとよく作る「蛸と茄子とトマトとシソの和風マリネ」です。
茄子が透き通るまでオリーブオイルで炒めたら、酢と醤油を適当にフライパンで合わせて、具材を混ぜたボウルか皿に回しかけ、冷蔵庫で冷やして食べます。シソをたっぷり入れると美味い。キュウリや枝豆を入れても良い。ミョウガを入れても良い。
↓この続きです。
オブジェクト(メソッド)
最初はなんやねんとよくわからなかったが、後半に出てきたこの図が分かりやすかった。
オブジェクトとは
プロパティをキーとするデータの集合
オブジェクト=データの集合の中で、プロパティをキーとして、Bobや25といった値を格納していたが、関数を格納した場合はメソッドと呼ぶらしかった。
メソッド、メソード (method) とは、方法、方式のこと。 特定の分野や固有名詞では日本語訳されずカタカナのまま用いられる。(Wikipedia)
GASでは、functionとして大きな括りでコードを書いていたが、その中でメソッドとして、なんちゃらgetなどを使っていた。たぶん。
functionとは
主な意味:機能、働き、作用、目的、職務、職能、職分、役目、儀式、行事
コードを見てみる。
↑上図では、
greet() {
console.log(`Hello! My name is ${this.name}.`);
}
がメソッドとなる。
↑もうひとつ、上図のコードで言うと、
isAdult() {
return this.age >= 18;
}
ここがメソッドになる。
なお、ここではthisキーワードを用いている。
thisはオブジェクト・メソッドの中では「オブジェクト自身」を表す特別なキーワードだが「※メソッドでアロー関数を使うとthisが機能しません」とのこと。
演習4-09
演習4-08のオブジェクトpersonに、性別を表すプロパティgender(値は'male'または'female')と、男性かどうかをtrueまたはfalseで返すメソッドisMaleを追加してみましょう。
下図のように回答した。
どうしても,こういう判定の時にはif/elseか?という思考が抜けきらない。比較演算子のtrueまたはfalse の活用、活躍を思い出すようにしたい。
演習4-10
プロパティとして
・縦の長さ: height
・横の長さ: width
と、メソッドとして縦の長さ×横の長さを計算して返すgetAreaを持つオブジェクトを定義してみましょう。
また出題意図、日本語が分からなくなり、日本語能力に不安を覚えた。
下図のように回答した。
areaで定義されたオブジェクトのメンバーの中に、プロパティとしてheightとwidthがある。また、メンバーの中に、メソッドとして、計算して返す関数(匿名関数)getAreaが含まれている。
オブジェクトの最後のメンバーの後にカンマは入れても入れなくてもよいが、Javascriptにおいては「末尾のカンマ」として、後からメンバーを追加する際の拡張性、メンテナンス性のためにカンマを付けておくことがある。
最後のカンマ(末尾のカンマ)
「最後のカンマ」って、アニメシリーズの初回タイトルで、かつ、シリーズの最終回でまた同じタイトルで「最後のカンマ」って出てきて、くぅ~~~~ってなるやつみたいで痺れますね。妄想です。
GASの世界(オブジェクト)
ここから話が少し変わる。これまではデータ型をそれぞれやってきていたが、ここでは視点を少し変えて、GASの世界を俯瞰する。
先ほど、メソッドとしてオブジェクトの中に関数を用いたが、そもそも、よく使われるであろうメソッドは先人たちの知恵によってすでに用意されているのだった。
それが
・JavaScriptの組み込みオブジェクト
・Google Apps Scriptの「サービス」
らしかった。
組み込みオブジェクトの話は正直ピンとこなかった。
なんかいろいろあるな、という雑な感想。
ラッパーオブジェクトはなんかをラップしてるんですね、プリミティブ型(数値、文字列、ブール値)を包み込んだオブジェクト?うまいのかそれ。
GASの3つのServices
こちらはまだしっくりきた。なぜならリファレンスでなんとなく見かける人たちだから。
・Google Workspace Services:Google Workspaceのアプリケーションを中心に操作する機能
・Script Services:横断的に使用するユーティリティ的な機能
・Advanced Google Services:アドバンスなやつ
まとめ的な話として、
Googleから提供されているさまざまな「モノ」がオブジェクトとして扱え、
その操作は
・メソッドで処理をする
に集約される
ということらしかった。オブジェクト指向ってやつなんか?
GASの習得とは
GASの習得とは
・基本構文
・制御構文
・データ型
・関数
・オブジェクト
この5点が基礎らしく、もう皆さん使えますね!って言われたけど、たぶんこれは念能力でいえばまだ最初の四大行のほんのさわりしか知らんやつだ。
そんで、それを極めないといけないやつだ。
あとは、オブジェクトの種類(クラス)と
そのメンバーの使い方を知るだけ
簡単に言ってくれちゃって~~~。
下記を読めということですね。
詳解!Google Apps Script完全入門[第2版] ※もうすぐ第3版が出る。
Google Apps Script REFERENCE:
https://developers.google.com/apps-script/reference
JavaScript | MDN:
https://developer.mozilla.org/ja/docs/Learn/JavaScript
次は
06/04 (金) スプレッドシート・シート・セルの操作です。
あと、reduceとアロー関数の読み解きをしたい。
いいなと思ったら応援しよう!
