January 2017
Intermediate to advanced
452 pages
5h 53m
Japanese
オブジェクトのプロパティに関しては、「9章 オブジェクトとオブジェクト指向プログラミング」などで基本的な事柄を説明してきましたが、JavaScriptではプロパティに関してさらに細かな操作や制御の機構が用意されています。アクセッサプロパティ、ディスクリプタ、オブジェクトの保護、それにES2015で新たに加わったプロキシといった事柄について見ていきましょう。
オブジェクトのプロパティで一般的なのは、名前(キー)と値のペアからなる「データプロパティ」ですが、このほかに「9章 オブジェクトとオブジェクト指向プログラミング」で例をあげた「アクセッサプロパティ」という種類のプロパティがあります。
アクセッサプロパティは関数(メソッド)とプロパティの機能を併せもつような存在です。「ゲッター」と「セッター」の2つがあり、定義するときは関数のように定義するのですがデータプロパティのような役目をします。
例をあげて説明しましょう。Userというクラスがあり、メールアドレスを記憶しているとします(話を単純にするために、ここでは「@を含む文字列」ならばメールアドレスとして有効であることにします)。外部からメールアドレスを直接書き換えられたりしないように、プロパティemailを直接読み書きするのではなく、setEmailとgetEmailという2つのメソッドを用意します。そして新しいシンボルを生成してメールアドレスを記憶するためのプロパティとします(emailとか_emailとかいった文字列のプロパティを使うと、直接アクセスできてしまいます)。
example/ch21/ex21-01-1/main.js list1
const ...
Read now
Unlock full access