function foo(){}; var oldname = foo.name; foo.name = 'bar'; console.log(oldname,foo.name); 今天有群友问了这么一个题,我以为是foo ,bar,结果在控制器中测试后发现是foo,foo. 原因: 函数的 name 属性可用于在调试工具或错误消息中标识该函数。它对语言本身没有任何意义。 name 属性是只读的,不能用赋值操作符修改。