js种的this其实并没有想象中的那么难理解,它是主要和调用的方法有关系,具体如下:
1.普通函数下的this:
如:function a(){
var name = "zhangsan";
console.log(this.name);``}
a(); //undefined
像这种情况,函数a()就是undefined,a()可以看作是window.a();指向的是全局对象。
2.对象下函数的this:
如:var a = {
var name = "zhangsan"
function b (){
console.log(this.name)}}
a.b(); //zhangsan
像这种情况,当函数作为对象里的方法被调用时,它们的 this 是调用该函数的对象。但是如果这个函数来里边再嵌套函数的话,不管嵌套多少个,里边的this指向的都是全局
3.构造函数中的this:
如:function a (){
this.name= "zhangsan"}
var b = new a();
console.log(b.name) //zhangsan
像这种情况,函数作为构造函数被new返回一个对象时,这个对象就是这个this。
4.就是call和apply这个具体作用就是自行改变this的指向。
10-13
652
08-10
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交