投稿者 tel | 2013年5月15日

Function.lengthプロパティの属性がブラウザによって違う

(function() {
    'use strict';
    console.log(Object.getOwnPropertyDescriptor(function() {}, 'length'));
})();
console.log(Object.getOwnPropertyDescriptor(function() {}, 'length'));

上記のコードを実行するとFirefox 20だと

 ({configurable:false, enumerable:false, value:0, writable:false})
 ({configurable:false, enumerable:false, value:0, writable:false})

Google Chrome 27だと

Object {value: 0, writable: true, enumerable: false, configurable: false}
Object {value: 0, writable: false, enumerable: false, configurable: false}

となぜかstrict modeでwritableの値が変わる。

ちなみにNode.jsでもChromeと同じ結果になった。(V8を使っているから?)

https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/Object/defineProperty

https://developer.mozilla.org/ja/docs/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

カテゴリー

%d人のブロガーが「いいね」をつけました。