Skip to content

Instantly share code, notes, and snippets.

@aloerina01
Last active March 14, 2017 08:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aloerina01/2d3a998bc7dc8f90c91ddc318e50214a to your computer and use it in GitHub Desktop.
Save aloerina01/2d3a998bc7dc8f90c91ddc318e50214a to your computer and use it in GitHub Desktop.
ES6 Proxy - 実用例ModuleBuilderでImmutableクラスをつくる
import ModuleBuilder, { Handlers } from './ModuleBuilder';
/**
* Module
*/
class Datetime {
constructor(datetimeString) {
this._source = datetimeString;
this._datetime = this.to(datetimeString);
}
/**
* @param {String} datetimeString
* @return {Object} datetime
*/
to(datetimeString) {
// 省略
}
/**
* @return {Number}
*/
year() {
return this._datetime.year;
}
// 以下略
}
export default new ModuleBuilder().class(Datetime).handler(Handlers.Immutable).build();
import Datetime from './Datetime';
let datetime = new Datetime(1489324383); // Proxyオブジェクトが生成される
console.log(datetime.year()); // 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment