关于javascript:JavaScript高级-函数中的this

62次阅读

共计 577 个字符,预计需要花费 2 分钟才能阅读完成。

this

什么是 this

  • 任何函数实质上都是通过某个对象来调用的, 如果没有间接指定就是 window
  • 所有函数外部都有一个变量 this
  • 它的值是调用函数的以后对象

如何确定 this 的值

  • test():window
  • p.test():p
  • new test(): 新创建的对象
  • p.call(obj):obj
function Person(color){console.log(this)
this.color = color;
this.getColor = function(){console.log(this)
return this.color;
};
this.setColor = function (color){console.log(this)
this.color = color
};
}
Person("red"); //this 是谁 window
var p = new Person("yello"); //this 是谁 p
p.getColor(); //this 是谁? p
var obj = {};
p.setColor.call(obj,"black"); //this 是谁? obj
var test = p.setColor;
test(); //this 是谁 window
function fun1(){function fun2(){console.log(this);
}
fun2(); //this 是谁? window}
fun1();

正文完
 0