私はGoogle Chromeの16.0.912.63を使用していますし、次のコードを持っている:未定義の動作が他の変数と異なるのはなぜですか?
__defineGetter__('x', function(){
console.log('In Getter: x'); return 1;
});
__defineGetter__('undefined', function(){
console.log('In Getter: undefined'); return 2;
});
console.log(x);
console.log(undefined);
をx
ためのゲッター機能が正しく入力されていますが、未定義のgetterが入力されることはありません。私のコンソールにログインし、出力は次のようになります。
In Getter: x
1
undefined
私はundefined
は、他のグローバル変数と同じように振る舞うという印象の下に常にでした。私はとても異なっているかについてundefined
それができない(少なくとも私のブラウザで)ゲッターを持つようになりますこと、書類など
undefined = 10;
undefined = null;
undefined = 'defined';
がすべて有効であることを知っています。
jsFiddleでは動作しませんが、コンソールにペーストすると動作します。 – pimvdb
@pimvdb:コンソール評価されたコードは 'with(console)'ブロックの中にラップされているので、 'console.undefined'というプロパティを定義しているからです。 – Ryan