Jeh*_*yun 1 javascript post-increment
我认为下面的代码应该显示4,为什么它产生3?
function arithFunc() {
var n = 0;
return {
plusOP: function() {
return n++;
},
minusOP: function() {
return n--;
}
};
}
var aTest = arithFunc(),
bTest = arithFunc();
document.getElementById("demo").innerHTML = aTest.plusOP();
document.getElementById("demo").innerHTML = aTest.plusOP();
document.getElementById("demo").innerHTML = bTest.minusOP();
document.getElementById("demo").innerHTML = aTest.plusOP();
document.getElementById("demo").innerHTML = bTest.minusOP();
document.getElementById("demo").innerHTML = aTest.plusOP();Run Code Online (Sandbox Code Playgroud)
<p id="demo"></p>Run Code Online (Sandbox Code Playgroud)
您正在使用postfix递增和递减运算符.这些是在返回值后计算的.例如:
var n = 0;
console.log(n++); // 0
console.log(n); // 1
Run Code Online (Sandbox Code Playgroud)
尝试使用前缀运算符:
var n = 0;
console.log(++n); // 1
console.log(n); // 1
Run Code Online (Sandbox Code Playgroud)
您的代码将如下所示:
function arithFunc() {
var n = 0;
return {
plusOP: function() {
return ++n;
},
minusOP: function() {
return --n;
}
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |