Object.defineProperty(Number.prototype, 'foo', {
get: function () {
var me = this
return function () { return me.valueOf() }
}
})
console.log(5..foo())
在Chrome中记录5,在Firefox中记录0。
Object.defineProperty(Number.prototype, 'bar', {
get: function () {
return this.valueOf()
}
})
console.log(5..bar)
在两个浏览器中都按预期记录5。
谁能解释这种行为,也许建议如何重写第一个例子可以在Firefox中工作,因为它在Chrome中?
jsfiddle.net/V2sHg/2/
当使用"new Number(value)"但不直接使用" Number "时,它在FF上对我有效:
试题:
var n = new Number(8);
n.foo(); --> 8