javascript( a == 1 && a == 2 && a == 3)
要使 javascript( a == 1 && a == 2 && a == 3)
为 true, 有可能吗? 既然抛出来了, 那一定是有解的.
var obj = {
index: 1,
get a() {
return obj.index++;
}
}
console.log('getter 第一次:', obj.a == 1 && obj.a == 2 && obj.a == 3)
console.log('getter 第二次:', obj.a == 1 && obj.a == 2 && obj.a == 3)
class A {
constructor() {
this.index = 1;
}
toString() {
return this.index++;
}
}
var a = new A();
console.log('class 第一次:', a == 1 && a == 2 && a == 3)
console.log('class 第二次:', a == 1 && a == 2 && a == 3)
还有队友的 hack
a = [1,2,3];
a.join = a.shift;
console.log(a == 1 && a == 2 && a == 3); // 数据进行字符串比较的时候, 会自动调用 join 函数, 将 join 函数重写即可.
还有一种障眼法, 搞3个不同的 a, 编码不一样, 但是看上去一样也行哈
Comments
Leave a comment