在JavaScript中,“副作用”一词是指什么?

时间:2011-09-29 16:48:25

标签: javascript

是否仅仅是在写一个变量?

3 个答案:

答案 0 :(得分:15)

这不是JavaScript中正式定义的术语,但我发现它最常用于引用直接上下文之外的某些状态更改。例如,以下代码在执行后不会导致状态发生变化,因此它将被视为“副作用免费”:

(function() {
    // no side-effects, foo won't exist once this function is done executing
    var foo = 'bar';
})();

...而在下面的代码中有副作用,因为引入了一个全局变量:

(function() {
    // no var keyword, so global variable created
    foo = 'bar';
})();

答案 1 :(得分:4)

我不认为该术语在JavaScript中具有特殊的,独有的定义含义。它可以与everywhere else相同。

答案 2 :(得分:0)

我会把它称为“状态被改变”,但是,基本就是这样。与它相反的是只读访问。