看JS紅皮書,對Number(obj)的描述是:先調用obj.valueOf(), 如果obj.valueOf()屬于任一基本類型,就再根據規則轉換。 如果obj.valueOf()的結果是NaN,就會調用obj.toString()方法同時obj.valueof()有描述:語法:obj.valueOf() // 這里的obj是任意對象,不單指 Object 作用:將對象 obj 轉化為原始類型的值,這個方法通常需要重寫(override)。自定義對象在未重寫 valueOf() 的情況下,valueOf() 會返回對象自身。如果obj.valueof()沒有被override,那么就會返回自身。疑問:Number(objNotOverrideValueOf)會進入死循環?
如果obj.valueof()沒有override,Number(obj)是否會進入死循環?
慕慕森
2019-03-19 15:15:29