提问人:davidchambers 提问时间:10/21/2011 最后编辑:Rob Wdavidchambers 更新时间:12/29/2011 访问量:95
Firefox 中 getter 返回函数时的意外行为
Unexpected behaviour in Firefox when getter returns a function
问:
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中一样?
答:
0赞
acanimal
12/29/2011
#1
当使用“new Number(value)”但不直接使用“number”时,它在 FF 上对我有用:
尝试:
var n = new Number(8);
n.foo(); --> 8
评论
this
()
5..foo
Number