如何实现a===1&&a===2&&a===3

方法一:我们使用ES6的Proxy代理来实现。

let result= {
  number: 1
};
result= new Proxy(test, {
  get(target, key) {
    return target[key]++;
  }
});
if(result.number === 1 && result.number ===2 && result.number ===3){
    console.log('istrue oh no');
}

方法二使用Object.defineProperty来解决,我们可以使用它来劫持a变量,当获取它的值得时候让它自增

var result2= 1;
Object.defineProperty(window, "a", {
  get() {
    return this.result2++;
  }
});
if (a === 1 && a === 2 && a === 3) {
  console.log("istrue");
}
劫持全局window上面的a,当a每一次做判断的时候都会触发get属性获取值
并且每一次获取值都会触发一次函数实行一次自增,判断三次就自增三次,最后会让公式成立。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容