合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
### 为什么要用this 下面两段代码功能是一样的 ``` function identify(){ console.log(this.name.toUpperCase()); } var me = {name: 'qc'}; identify.call(me); ``` ``` function identify(context){ console.log(context.name.toUpperCase()); } var me = {name: 'qc'}; identify(me); ``` this有时候并不会指向自身,比如函数。函数不具有保存this的功能 ``` function foo(){ this.count++; } var count = 0; foo.count = 10; foo(); //this指向了window console.log(count); //1 console.log(foo.count); //10 ``` 如何让函数中的this指向自身呢? ``` function foo(){ foo.count++; } foo.count = 0; foo(); console.log(foo.count); ``` 或者是 ``` function foo(){ this.count++; } foo.count = 0; foo.call(foo); console.log(foo.count); ``` this实际上是在函数被调用时发生的绑定,它指向什么完全取决于函数在哪里被调用,比如在全局作用域调用,this就指向window。