Javascript Object defineProperty混淆了我对提升/同步和异步js的看法

Javascript Object defineProperty混淆了我对提升/同步和异步js的看法,javascript,increment,getter-setter,Javascript,Increment,Getter Setter,当涉及到浏览器如何加载数据并将其呈现给用户时,我认为我对异步/同步/提升有很好的理解。然而,下面这个例子让我陷入了一个循环,让我发布这个例子,然后解释这个问题: var obj={ 柜台:0,, }; Object.defineProperty(对象“重置”{ get:function(){ 返回此计数器。计数器=2; } }); Object.defineProperty(obj,“增量”{ get:function(){ 返回这个.counter++; } }); Object.defin

当涉及到浏览器如何加载数据并将其呈现给用户时,我认为我对异步/同步/提升有很好的理解。然而,下面这个例子让我陷入了一个循环,让我发布这个例子,然后解释这个问题:

var obj={
柜台:0,,
};
Object.defineProperty(对象“重置”{
get:function(){
返回此计数器。计数器=2;
}
});
Object.defineProperty(obj,“增量”{
get:function(){
返回这个.counter++;
}
});
Object.defineProperty(obj,“减量”{
get:function(){
把这个还给我;
}
});
console.log(obj.reset)//2
console.log(obj.increment+“”+“incremented”)/“2 incremented”
console.log(obj.decrement+“”+“decremented”)/“3 decremented”
您注意到了吗

var cpt_A=5;
var cpt_B=5;
函数func_A(){return cpt_A--}
函数func_B(){return--cpt_B}
console.log(func_A())//返回5。
console.log(func_B())//返回4。
您注意到了吗

var cpt_A=5;
var cpt_B=5;
函数func_A(){return cpt_A--}
函数func_B(){return--cpt_B}
console.log(func_A())//返回5。

console.log(func_B())//返回4。
这与异步无关
console.log
正在接收表达式并打印该值
obj.increment
返回2,因为运算符就是这样工作的。它递增数字并在递增之前返回值。所以,结果是

console.log(2 + ' ' + "incremented") 

console.log()。同样的逻辑适用于
减量
。表达式变为
console.log(3+“”+“递减”)

这与异步无关
console.log
正在接收表达式并打印该值
obj.increment
返回2,因为运算符就是这样工作的。它递增数字并在递增之前返回值。所以,结果是

console.log(2 + ' ' + "incremented") 

console.log()。同样的逻辑适用于
减量
。表达式变为
console.log(3+“”+“decremented”)

减量运算符不应该在cpt\u B之后,比如说cpt\u B--?func_A不应该返回4吗?不,这是两种不同的动作顺序。这是一个典型的例子。减量运算符不应该在cpt_B之后,就像cpt_B--?func_A不应该返回4吗?不,这是两种不同的动作顺序。这是一个经典案例。这与异步或提升无关,只是后增量和后减量运算符的工作方式。这与异步或提升无关,只是后增量和后减量运算符的工作方式。