对象脑图总结

对象脑图总结

1、
是这样的,不同的对象的底层都表示为二进制,
在 js 中二进制前三位都为 0 的话会判断为 object 的类型, null 的二进制是全 0,自然前三位也是0
所以执行 typeof 时会返回 ‘object’

2、

var myArray = [1,2,3];
var it = myArray[Symbol.iterator]();
it.next(); // {value: 1, done: false}
it.next(); // {value: 2, done: false}
it.next(); // {value: 3, done: false}
it.next(); // {done: true}

3、

var myObj = {
  a:2,
  b:3
}
Object.defineProperty(myObj, Symbol.iterator, {
  enumerable: false,
  writable: false,
  configurable: true,
  value: function() {
    var o = this;
    var idx = 0;
    var ks = Object.keys(o);
    return {
      next: function() {
        return {
          value: o[ks[idx++]],
          done: (idx > ks.length)
        }
      }
    }
  }
})

var it = myObj[Symbol.iterator]();
it.next(); // {value: 2, done: false}
it.next(); // {value: 3, done: false}
it.next(); // {done: true}