this
this是js的一个关键字,只能在函数内部运用,在函数运转时刻自动天生的内部对象,代表函数运转时刻的作用域指向,运用频次极高!
经常使用的用法与作用域指向
函数挪用:js内里规定当一个函数并不是某一个对象,直接挪用的时刻,称之为函数挪用,此时this指向全局对象Global。
var t = 1; function test(){ console.log(this.t) } test() //1
要领挪用:当一个函数作为一个对象的属性挪用时刻(
[fn]下标表达式或许.fn点表达式
)称之为要领挪用,此时this指向这个对象。var t =1; var obj= { t:2, test :function(){ console.log(this.t) } } obj.test() // 2
作为组织函数挪用:
var test = new fn()
的体式格局 称fn为test的组织函数,new的过程当中组织函数的this对象的属性和要领将被加到新对象的属性上
。function fn(){ this.t = 1 } var test = new fn(); test.t // 1 //fn的this对象会被加到新天生的test对象上
4:apply,call,bind体式格局挪用:apply,call,bind都能够转变一个函数运转时刻的this指向。
var t = 1
var test = function(){
console.log(this.t)
}
test() //1
test.call({t:2}) //2
test.apply({t:3})//3
test.bind({t:4})()//4
关于bind的剖析,能够看另一篇文章:bind要领剖析与完成
看完了上面4种挪用体式格局能够得出一个结论
:this指向的作用域永远是函数运转时刻决议的
。