纯函数应该是不能修改入参的吧,作者说这个是纯函数,我现在有点疑惑。
这function1假如传入的实参global是字符串,那它后面给global赋值的时候,改变的是形参,是function1作用域内的global,外层的global是不会被修改的.
function1想要生效最后应该要return global.
即执行
global = function1(input,global);
才能修改外面的global.
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
字符串不是引用类型,修改并不会引起参数源数据改变,所以还是纯函数没错。
反之如果参数是引用类型
Object
,Array
,并在函数内修改了对象属性会造成参数变化的副作用,就不能称之为纯函数了