Javascript 中的this指向
Posted 教父123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javascript 中的this指向相关的知识,希望对你有一定的参考价值。
1、作为对象的方法调用,this值当前对象
var obj={ name:"xiao", getName(){
this.name //xiao } }
obj.getName();
2、作为普通函数调用 this指向window, 当一个函数体 ,自执行时,里面的this指向window,若想改变this 可以var that = this
var obj={ name:"xiao", getName(){ this.name //xiao } } var fn = obj.getName fn();//undefined
3、构造函数调用时 指new的对象
function fn(name){ this.name=name return { name:‘bb‘ } } var obj =new fn(‘gg‘) obj.name// bb this指返回的对象
还有一种情况如果此时构造函数 显示的返回一个对象的话 那么this指向 返回的对象 而不是new的对象
所以,如果构造函数返回一个非对象类型数据的话,就不会造成上面的问题
4、call ,apply
它们俩都是强制改变this指向,它们都是接受两个参数,第一个则是this,第二个是参数,
apply要求第二个参数是一个集合 数组或者类数组,call则是单个参数,call一般用于参数确定的情况,apply则用于参数不确定的情况
以上是关于Javascript 中的this指向的主要内容,如果未能解决你的问题,请参考以下文章