测试环境:
- MacOS v10.14.6;
- Chrome 89.0.4389.82
问题描述:
我在一个函数的toString
方法中添加了一个断点,并逐步调试它,当我执行到下一行时,我看到toString
方法被调用。
用语言描述有点困难,请观看屏幕录制:视频
为什么?
代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function fn() { }
fn.toString = function () {
debugger;
console.log('toString called');
const a = 'a';
return a;
};
fn.toString();
</script>
</body>
</html>
debugger
之前调用了多次console.log
。只是为了让你有个想法,如果你将toString()
移出fn()
函数,日志就不会多次发生。 - fortunee