GAS(Google Apps Script)で`Object.assign`できない

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

GASの`Object.assign()`メソッドは標準状態では使えません。拡張が必要

”Google Apps Script”(GAS)は、GoogleスプレッドシートなどのGoogleのクラウド商品をプログラムするのに使われ、JavascriptをベースにしているのでWeb開発者にはわかりやすい言語と言われています。

スプレッドシートで体重や血圧などの健康状態を記録しているのですが、セルの計算式では面倒な処理をAppsScriptでスクリプトを組んでいます。Javascriptのオブジェクト志向の開発に慣れ始めてきたので、`Object.assign()`と言う、オブジェクトをオブジェクトにコピーするメソッドを使おうと試行錯誤していました。

結論から言うと、Javascriptのバージョン違いのため標準では使えないので、「Advanceモード」で使えって話しらしいです。

`Object.assign`メソッドが標準で使えるのは”Javascript V8 (1.8) / ECMAScript6 (2015,EC6)“以降です。対してGASのバージョンはJavascript V6 (1.6) / ECMAScript5 (Strict, EC5)をベースにしているらしく、Advanceモード的な「機能拡張」(Advanced Google Services)を「有効」にすると”Object”クラスやメソッドが使えるようになるそうです。

標準の状態で`Object.assign`メソッドを使った時のエラー

メッセージの詳細

TypeError: オブジェクト function Object() { [native code for Object.Object, arity=1] } で関数 assign が見つかりません。(行 71、ファイル「myFunction」)

“Advanced Google Services”を有効にして開発を進めてもいいのですが、作成したスクリプトが環境依存するのが嫌だったため、今回は見送って別の方法(古いやり方)を試すことにしました。

参考文献

関連記事

PHPでBloggerにカテゴリを設定する方法 Blogger API+Zend GData APIでラベル/タグ付き記事を投稿する PHPでGoogleのBlogger(Blogspot)に記事を投稿する場合、ZendのGoogleDataAPIが便利なのですが、記事にラベルやタグといったカテゴリーを付けて投稿する事ができます。ルーク、ソ...
Googleスプレッドシートで、同じ列に合計欄と数値欄を設置する... Google Spreadsheetsで見出し行を合計欄にした同列の最後の行まで動的にSUMする Googleスプレッドシート上で、ある列、たとえば"B列"の全合計を知りたい場合、"=SUM(B:B)"の計算式で列の総合計が算出できます。 しかし、合計欄と対象となる数値一覧を同じ列内に設置し...
ChromeでGoogleスプレッドシートのタブが表示されない... GoogleSpreadsheetsのタブがChromeで表示されない 特定のマシンのChromeで、Googleのスプレッドシートのタブが表示されず、入力も出来ない状態が発生しました。 結論から言うと、拡張機能が原因で一旦すべてをオフにすると回避できます。 Safari,IE,Firef...
GoogleスプレッドシートでMD5関数・4桁の短いハッシュを取得する関数... MD5関数とMD5を4桁まで短くしたハッシュ値をGoogleSpreadsheetsのセルで使う為のGoogleAppsScript(GAS) Googleスプレッドシートのセル内に`=MD5( A1 )`といった計算式を入れるだけで、引数もしくは参照先のセルの値をMD5でハッシュした文字列を返す...

スポンサーリンク
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク
レクタングル(大)広告