方法一
const a = {
value: [3, 2, 1],
valueOf: function () {
return this.value.pop();
},
}
console.log(a == 1 && a == 2 && a == 3);
方法二
const a = [1, 2, 3];
a.join = a.shift;
console.log(a == 1 && a == 2 && a == 3);
方法三
const a=(function(){
let i=1;
return {
valueOf:function(){
return i++
}
}
})()
console.log(a == 1 && a == 2 && a == 3);
方法四
var a_ = 1;var a = 2;var _a = 3;
if(a_==1 && a== 2 &&_a==3) {
console.log('567890-')
}
方法五
const a = {
value: [3, 2, 1],
valueOf: function () {
return this.value.pop();
},
}
console.log(a == 1 && a == 2 && a == 3);
方法六
var val = 1;
Object.defineProperty(window, 'a', {
get: function () {
return val++;
}
});
if (a == 1 && a == 2 && a == 3) {
console.log('yay');
}
方法七
Object.defineProperty(this, 'a', {
get: function () {
return this.value = this.value ? (this.value += 1) : 1
}
})
console.log(a === 1 && a === 2 && a === 3)
方法八
let _a= 1;Reflect.defineProperty(this, 'a', { get() { return _a++; }});
console.log(a === 1 && a === 2 && a === 3);