**
函数的隐式转换
**
直接将函数参与其他的计算时,函数会默认调用toString方法,直接将函数体转换为字符串参与计算。
function fn(){
return 20
}
console.log(fn + 10) // 输出 function fn(){return 20}10
重写函数的toString方法,让函数参与计算,输出结果
function fn1(){
return 20
}
fn1.toString = function(){
return 30
}
console.log(fn1 + 10) // 输出 40
同样也可以重写函数的valueOf方法
function fn2(){
return 20
}
fn2.valueOf = function(){
return 50
}
console.log(fn2 + 10) // 输出 60
同时重写toString和valueOf方法时,使用的是valueOf
function fn3(){
return 20
}
fn3.toString = function(){
return 30
}
fn3.valueOf = function(){
return 50
}
console.log(fn3 + 10) // 输出 60