-
作用域 一共有三种
- 全局作用域
- 函数作用域
- let const 的块级作用域 !
- 函数调用
- .call
- 第一个参数是this
- 其他参数是arguments 。function.arguments 属性代表传入函数的实参,它是一个类数组对象。
- 返回值用与返回结果
- 形参就是 var a = arguments[0]
- .apply
- 第一个参数是this
- 第二个参数是个数组就是arguments
call和apply只是参数的形式不一样
this永远指向函数表达式或者函数声明被执行的那一刻调用该函数的那个对象。
请记住这句话:when a function of an object was called , the object will be passed to the execution context as 'this' value .也就是说,当一个函数被调用时,拥有它的object会作为this传入。在global下,就是window or global,其他时候就是相应的object。 也可以看到,call和apply就是利用这一点实现更改this 值的。
作者:杨志
链接:https://www.zhihu.com/question/19636194/answer/13511325
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。