让if(a == 1 && a == 2 && a == 3)条件成立的办法

tech2023-05-28  95

一、重写valueOf() // 1 var a = {   value: 0,   valueOf () {     return ++this.value   } } if (a == 1 && a == 2 && a == 3) {   console.log('成立') }

二、重写valueOf()和toString() var a = {   value: 0,   toString () {     return ++this.value   } } if (a == 1 && a == 2 && a == 3) {   console.log('成立') }

三、重写Symbol.toPrimitive var a = {   value: 0,   [Symbol.toPrimitive] (hint) {     if (hint === 'default') {       return ++this.value     }   } } if (a == 1 && a == 2 && a == 3) {   console.log('成立') }

四、定义class并重写valueOf() class A {   constructor () {     this.value = 0   }   valueOf () {     return ++this.value   } } var a = new A() if (a == 1 && a == 2 && a == 3) {   console.log('成立') }

五、利用数组转为字符串会隐式调用join() let a = [1, 2, 3] a['join'] = function () {   return this.shift() } if (a == 1 && a == 2 && a == 3) {   console.log('成立') }

六、定义class继承Array并重写join() class A extends Array {   join = this.shift } var a = new A(1, 2, 3) if (a == 1 && a == 2 && a == 3) {   console.log('成立') }

最新回复(0)