javascript:es5
差分
このページの2つのバージョン間の差分を表示します。
javascript:es5 [2014/01/04 13:21] – 作成 nullpon | javascript:es5 [2015/10/24 04:31] (現在) – 削除 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; }, | ||
- | }); | ||
- | </ | ||
- | |||
- | |||
javascript/es5.1388841673.txt.gz · 最終更新: 2014/01/04 13:21 by nullpon