内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
ecmascript:es5
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 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()); // "ほげ" </code> ===== Object.defineProperty ===== ==== プロパティを定義 ==== <code javascript> var a = {}; Object.defineProperty(a. "hoge", { value: "ほげ" }); console.log(a.hoge); // "ほげ" </code> ==== writable属性 ==== デフォルトのwritable属性はfalseで、上書き不可のプロパティとなる。 <code javascript> var a = {}; Object.defineProperty(a, "hoge", { value: "ほげ" }); a.hoge = "ふが"; // 上書きできない! console.log(a.hoge); // "ほげ" </code> <code javascript> var a = {}; Object.defineProperty(a, "hoge", { value: "ほげ", writable: true }); a.hoge = "ふが"; console.log(a.hoge); // "ふが" </code> ==== enumerable属性 ==== デフォルトのenumerable属性はfalseで、for in ループで列挙されない。 <code javascript> var a = {}; Object.defineProperty(a, "hoge", { value: "ほげ" }); for (var i in a) { console.log(i + ":" + a[i]); // 何も表示されない! } </code> <code javascript> var a = {}; Object.defineProperty(a, "hoge", { value: "ほげ", enumerable: true }); for (var i in a) { console.log(i + ":" + a[i]); // hoge:"ほげ" が出力される } </code> ==== configurable属性 ==== デフォルトのconfigurable属性はfalseで、deleteできない。 <code javascript> var a = {}; Object.defineProperty(a, "hoge", { value: "ほげ" }); console.log(a.hoge); // "ほげ" delete a.hoge; // hogeを削除できない console.log(a.hoge); // "ほげ" </code> <code javascript> var a = {}; Object.defineProperty(a, "hoge", { value: "ほげ", configurable: true }); console.log(a.hoge); // "ほげ" delete a.hoge; // hogeを削除できる console.log(a.hoge); // undefined </code> ==== setter, getterを定義 ==== <code javascript> var a = {}; Object.defineProperty(a, "hoge", { set: function(_hoge){ this._hoge = _hoge + 1; }, get: function() { return this._hoge + 1; }, }); a.hoge = 1; console.log(a.hoge); // 3; </code> setter, getterを定義した場合は writable, configurable, value を定義できない。 以下の例はsetterやgetter内部で自分自身を呼ぶ事になり、無限再帰でエラーとなる。 <code javascript> /* これはだめ */ Object.defineProperty(a, "hoge", { set: function(hoge){ this.hoge = hoge; }, get: function() { return this.hoge; }, }); </code>
ecmascript/es5.txt
· 最終更新:
2015/10/24 04:32
by
nullpon
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ