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();
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。