問題描述
在開發(fā)的過程中,遇到toString這個方法,就記錄一下使用的過程中遇到的問題。
function fn() {
return 10;
}
console.log(fn); // 瀏覽器環(huán)境下,? fn() { return 10;}
console.log(fn); // 交互式命令行中,[Function: fn]
console.log(fn + 10); // 瀏覽器環(huán)境下, function fn() {return 10;}10
console.log(fn + 10); // 交互式命令行中,function fn() {return 10;}10
稍微修改一下
function fn() {
return 10;
}
fn.toString = function() {
return 10;
}
console.log(fn); // 瀏覽器環(huán)境下,? 10
console.log(fn); // 交互式命令行中,{ [Function: fn] toString: [Function] }
console.log(fn.toString()); // 瀏覽器環(huán)境下,10
console.log(fn.toString()); // 交互式命令行中,10
console.log(fn + 10); // 瀏覽器環(huán)境下, 20
console.log(fn + 10); // 交互式命令行中,20
由此可以看出,對于一個方法,瀏覽器單純打印地話,會自動調(diào)用toString方法(打印會帶上? 標(biāo)識),交互式命令行不會;調(diào)用簡單操作比如+、-等運算,都會自動調(diào)用toString方法(并且瀏覽器下也會取消? 標(biāo)識)。