有些代码例如.
let a = 1
a.__proto__.toString = function(){ return 'test'}
a.toString()
//"test"
a + '2'
//"12"
Run Code Online (Sandbox Code Playgroud)
我真的无法理解toString方法存储在哪里.如果我用可变对象做到这一点,我得到了
let o = {}
o.__proto__.toString = function(){ return 'test'}
o.toString()
//"test"
o + '2'
//"test2"
Run Code Online (Sandbox Code Playgroud)
这符合我的预期.所以,问题是,其中toString的Number或其他不变类型存储并调用时类型转换发生.
javascript ×1