Object.defineProperty(Number.prototype, 'foo', {
get: function() { return this }
})
console.log(10.5.foo)
console.log(10..foo) // 0 in IE9!
console.log(10.0.foo) // 0 in IE9!
console.log(10.01.foo)
console.log((10).foo) // 0 in IE9!
var x = 10
console.log(x.foo) // 0 in IE9!
誰もこの動作を説明したり、回避策を提案することはできますか?数値リテラルから `Number.prototype`のプロパティにアクセスする際に、IE9で奇妙な「ゲッタ」動作が発生する
好奇心の邪魔をして、なぜ地球上で*これをやりたいのですか? –
'new Number(10)'で動作します - プリミティブとしての整数でのみ失敗します。うまく見つかりました! – pimvdb
IE9のバグのように思えるのですが、根本的な理由が不思議です。あなたがしていることをより良くする方法があるはずです。 –