var Point = (function() { // コンストラクタ var ctor = function Point(x, y) { // new なしで呼び出すとエラー if (!(this instanceof ctor)) throw new TypeError('Constructor cannot be called as a function.'); this.x = x; this.y = y; }; var proto = ctor.prototype = {}; proto.constructor = ctor; // 別名コンストラクタ ctor.from = (function(c) { c.prototype = proto; return c; }(function from(object) { if (!(this instanceof ctor)) t
![最近良くやるJavaScriptでのクラスの書き方 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/ab994d36a96bf62d1ae78b24f7f547c50ca13b91/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-1.2.2%26w%3D1200%26mark%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D380%2526txt%253D%2525E6%25259C%252580%2525E8%2525BF%252591%2525E8%252589%2525AF%2525E3%252581%25258F%2525E3%252582%252584%2525E3%252582%25258BJavaScript%2525E3%252581%2525A7%2525E3%252581%2525AE%2525E3%252582%2525AF%2525E3%252583%2525A9%2525E3%252582%2525B9%2525E3%252581%2525AE%2525E6%25259B%2525B8%2525E3%252581%25258D%2525E6%252596%2525B9%2526txt-color%253D%252523333%2526txt-font%253DHiragino%252520Sans%252520W6%2526txt-size%253D54%2526txt-clip%253Dellipsis%2526txt-align%253Dcenter%25252Cmiddle%2526s%253D1afe8061bdb9b4f803b3197d552606e4%26mark-align%3Dcenter%252Cmiddle%26blend%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D500%2526txt%253D%252540chick307%2526txt-color%253D%252523333%2526txt-font%253DHiragino%252520Sans%252520W6%2526txt-size%253D45%2526txt-align%253Dright%25252Cbottom%2526s%253D182acbaa62c68f528356afd749ba6864%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3D59ceb6b11a58d9d76f11afcefeea67b1)