this是什么?
任何函数本质上都是通过某个对象调用的,如果没有指定则是window
所有函数内部都有一个变量this
它的值是调用函数的当前对象
如何确定this?
test():window
p.test():p
new test():创建新对象
p.call(obj):obj
functtion Person(name){
console.log(this);
this.name = name;
this.getName=function(){
console.log(this);
return this.name;
};
this.setName = function(){
console.log(this);
this.name = name;
}
}
Person("ww');//this是window
var p = new Person('xx');//this是p
p.getName();//this是p
var obj={};
p.setName.call(obj,"black");//this是obj
var test = p.setName;
test();//this是window
function fun1(){
function fun2(){
console.log(this);
}
fun2();//this是window
}
fun1();