这个作者喜欢用call, apply和arguments

2.1 this

2.1.1 this的指向

  • strict模式,this为undefiend而不指向window
  • 构造器显式地return一个object的情况,this指向问题

    2.2.2 丢失的this

    许多浏览器引擎的 document.getElementById 方法的内部实现需要用到this
    不能这样:
  1. var getId = document.getElementById

2.2 call和apply

2.2.1 区别

apply传数组
第一个参数传null,函数内部指向宿主对象(严格模式下仍然是null)。

2.2.2 用途

1. 改变this指向

2. Function.prototype.bind

包装一个bind函数(不含参数和含参数)

3. 借用其它对象的方法

  • 借用构造函数——继承
  • arguments,借用Array.prototype的方法

对象本身可存取属性(有下标)
对象length属性可读写(函数的length是参数个数,只读)