0 또는 1의 값을 가질 수있는 변수 a
와 자바 스크립트 변수 b
가 있습니다.
누구든지 내가 함수를 코딩하는 방법을 제안 할 수 있으므로 다음과 같은 b
값에 의존 할 수 있습니다 a
.
a
0에서 1로 변경 될 때 -500ms 이상a
1 이면 1로 설정됩니다.b
a
1에서 0으로 변경 될 때 - 즉시b
0으로 설정됩니다.함수를 사용하여 이것을 코딩하는 방법이 있다면 변수 a's
setter에 첨부 할 수 있습니까?
가능한 경우 액세스를 defineProperty
다음으로 래핑하십시오 .
var obj = {
_a: 1
};
Object.defineProperty(obj, "a", {
get: function() {
return this._a;
},
set: function(newA) {
if (this.changeB) {
clearTimeout(this.changeB);
this.changeB = null;
}
if (this.a == 0 && newA == 1) {
this.changeB = setTimeout(function() {
this.b = 1;
}.bind(this), 500);
}
else if (this.a == 1 && newA == 0) {
this.b = 0;
}
this._a = newA;
}
});
그런 다음 다음과 같이 사용할 수 있습니다.
// Immediately set to 0
obj.a = 0;
console.log(obj.b);
// Set to 1 and start the timeout
obj.a = 1;
console.log(obj.b);
setTimeout(function() {
console.log(obj.b);
// Set back to 0
obj.a = 0;
console.log(obj.b);
// And hey, make sure changing a stops b from being set
obj.a = 1;
obj.a = 2;
setTimeout(function() {
console.log(obj.b);
}, 500);
}, 500);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다