记一道有趣的js面试题

2018-03-17  本文已影响0人  __Seve

让a同时等于1,2,3?

var a =[1,2,3]
a.join=a.shift
if(a==1&&a==2&&a==3){
  console.log('so cool')
}

原理

1.因为==的时候会调用数组的join方法,而我们把join方法重写了,每次调用的时候是用的shift,从前面删除一个并返回

var a  ={
  i : 0,
  toString:function(){
    return ++a.i
  }
}
if(a==1&&a==2&&a==3){
  console.log('so cool')
}

原理

==的时候会调用toSting 我们重写了a的toString方法,这样每次调用的时候这个对象的i,就自增1并且返回。

上一篇 下一篇

猜你喜欢

热点阅读