方法一:我们使用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辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。