正常情况下,object和number类型比较,会优先调用valueOf方法,如果返回值不为原始类型,才调用toString方法,如果返回值还不为原始类型,就会报错.
但是我测试了一下date对象,好像不是那么回事.
我比较了一下 valueOf的返回值,他是false,但是当我改写了 toString和valueOf方法以后,再进行比较就会和其他object类型一样,报错.
所以我想问,在number和date类型比较时,优先调用了什么方法?
正常情况下,object和number类型比较,会优先调用valueOf方法,如果返回值不为原始类型,才调用toString方法,如果返回值还不为原始类型,就会报错.
但是我测试了一下date对象,好像不是那么回事.
我比较了一下 valueOf的返回值,他是false,但是当我改写了 toString和valueOf方法以后,再进行比较就会和其他object类型一样,报错.
所以我想问,在number和date类型比较时,优先调用了什么方法?
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
date 类型转化为基础类型,优先
toString
,后valueOf
。贴个链接,重点看 NOTE 部分。