函数内部属性 :arguments、callee、caller、prototype 以及方法call和apply等。
arguments[0]
arguments[1]
arguments[2]
arguments.callee:
指向当前执行的函数。
arguments.caller :
指向调用当前函数的函数。
arguments.length:
指向传递给当前函数的参数数量。
arguments[@@iterator]:
返回一个新的Array迭代器对象,该对象包含参数中每个索引的值。
- ## prototype
每个函数都包含两个非继承的方法call()和apply()
apply() 改变函数内部this的指向
methodName.apply(obj,args) 第一个参数是函数作用域(相当于调用者),第二个是参数数组。 这里相当于java的反射调用 method.invoke(obj,args)
改变了this的指向
call()
call() 与apply()类似,只是传参方式不同,call需要传多个参数,apply只需要传一个参数数组