ecmascript:es5
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| ecmascript:es5 [2015/10/24 04:31] – 作成 nullpon | ecmascript:es5 [2025/09/15 01:11] (現在) – 削除 nullpon | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== ECMAScript 5th ====== | ||
| - | ECMAScript 5thで追加された仕様についてメモ、少しずつ追加していきます。 | ||
| - | |||
| - | ===== Array ===== | ||
| - | |||
| - | * Array.prototype.forEach | ||
| - | * Array.prototype.every | ||
| - | * Array.prototype.some | ||
| - | * Array.prototype.map | ||
| - | * Array.prototype.filter | ||
| - | |||
| - | ===== String ===== | ||
| - | |||
| - | * String.prototype.trim | ||
| - | |||
| - | ===== Object.create ==== | ||
| - | <code javascript> | ||
| - | var a = Object.create({ | ||
| - | hoge: " | ||
| - | getHoge: function() { return this.hoge } | ||
| - | }); | ||
| - | |||
| - | console.log(a.getHoge()); | ||
| - | </ | ||
| - | |||
| - | ===== Object.defineProperty ===== | ||
| - | ==== プロパティを定義 ==== | ||
| - | <code javascript> | ||
| - | var a = {}; | ||
| - | Object.defineProperty(a. " | ||
| - | value: " | ||
| - | }); | ||
| - | console.log(a.hoge); | ||
| - | </ | ||
| - | |||
| - | ==== writable属性 ==== | ||
| - | デフォルトのwritable属性はfalseで、上書き不可のプロパティとなる。 | ||
| - | <code javascript> | ||
| - | var a = {}; | ||
| - | Object.defineProperty(a, | ||
| - | value: " | ||
| - | }); | ||
| - | a.hoge = " | ||
| - | console.log(a.hoge); | ||
| - | </ | ||
| - | |||
| - | <code javascript> | ||
| - | var a = {}; | ||
| - | Object.defineProperty(a, | ||
| - | value: " | ||
| - | writable: true | ||
| - | }); | ||
| - | a.hoge = " | ||
| - | console.log(a.hoge); | ||
| - | </ | ||
| - | |||
| - | ==== enumerable属性 ==== | ||
| - | デフォルトのenumerable属性はfalseで、for in ループで列挙されない。 | ||
| - | <code javascript> | ||
| - | var a = {}; | ||
| - | Object.defineProperty(a, | ||
| - | value: " | ||
| - | }); | ||
| - | for (var i in a) { | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | <code javascript> | ||
| - | var a = {}; | ||
| - | Object.defineProperty(a, | ||
| - | value: " | ||
| - | enumerable: true | ||
| - | }); | ||
| - | for (var i in a) { | ||
| - | | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ==== configurable属性 ==== | ||
| - | デフォルトのconfigurable属性はfalseで、deleteできない。 | ||
| - | <code javascript> | ||
| - | var a = {}; | ||
| - | Object.defineProperty(a, | ||
| - | value: " | ||
| - | }); | ||
| - | console.log(a.hoge); | ||
| - | delete a.hoge; | ||
| - | console.log(a.hoge); | ||
| - | </ | ||
| - | |||
| - | <code javascript> | ||
| - | var a = {}; | ||
| - | Object.defineProperty(a, | ||
| - | value: " | ||
| - | configurable: | ||
| - | }); | ||
| - | console.log(a.hoge); | ||
| - | delete a.hoge; | ||
| - | console.log(a.hoge); | ||
| - | </ | ||
| - | |||
| - | |||
| - | |||
| - | ==== setter, getterを定義 ==== | ||
| - | <code javascript> | ||
| - | var a = {}; | ||
| - | Object.defineProperty(a, | ||
| - | set: function(_hoge){ this._hoge = _hoge + 1; }, | ||
| - | get: function() { return this._hoge + 1; }, | ||
| - | }); | ||
| - | |||
| - | a.hoge = 1; | ||
| - | console.log(a.hoge); | ||
| - | </ | ||
| - | |||
| - | setter, getterを定義した場合は writable, configurable, | ||
| - | |||
| - | 以下の例はsetterやgetter内部で自分自身を呼ぶ事になり、無限再帰でエラーとなる。 | ||
| - | |||
| - | <code javascript> | ||
| - | /* これはだめ */ | ||
| - | Object.defineProperty(a, | ||
| - | set: function(hoge){ this.hoge = hoge; }, | ||
| - | get: function() { return this.hoge; }, | ||
| - | }); | ||
| - | </ | ||
| - | |||
| - | |||
ecmascript/es5.1445661105.txt.gz · 最終更新: by nullpon