让if(a == 1 && a == 2 && a == 3)条件成立的办法
发布日期:2021-11-21 16:36:01 浏览次数:11 分类:技术文章

本文共 908 字,大约阅读时间需要 3 分钟。

一、重写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('成立')
}

转载地址:https://blog.csdn.net/yyychocolate/article/details/108382764 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:让if (a === 1 && a === 2 && a === 3)条件成立
下一篇:实现sum(1)、sum(1)(2)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月31日 05时06分07秒