// 方法一 let a = { i: 0, toString() { return ++this.i }, // 对象转数字,先转换为字符串(先调用valueOf,再调用toString()),再转为数字 // 所以,改造valueOf方法也可以 // valueOf() { // return ++this.i // } } if(a == 1 && a == 2 && a == 3) { console.log('方法一成了') } // 以下不成立 if(a === 1 && a === 2 && a === 3) { console.log('全等比较的是对象a和数字,肯定是不等的') } // 方法二 let k = 0; Object.defineProperty(window, 'b', { get() { return ++k } }) if(b === 1 && b === 2 && b === 3) { console.log('方法二成了') }