我使用谷歌瀏覽器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
吸氣功能,但從未進入未定義的吸氣劑。登錄到我的控制檯輸出爲:
In Getter: x
1
undefined
我一直的印象是undefined
的行爲與其他任何全局變量下。我知道,語句如
undefined = 10;
undefined = null;
undefined = 'defined';
都是有效的,那麼什麼是不同的關於undefined
,使得它無法擁有(在我的瀏覽器至少)的吸氣劑。
它不適用於jsFiddle,但它在粘貼到控制檯時可以正常工作。 – pimvdb 2011-12-24 21:26:31
@pimvdb:這是因爲控制檯評估的代碼被封裝在一個'with(console)'塊中,因此它定義了一個屬性'console.undefined'。 – Ryan 2011-12-24 21:28:40