补充:
function Foo(name,age){
this.name=name;
this.age=age;
this.getName=function(){
console.log(this);
} } obj = new Foo("文州",19)
obj.getName()
//这里把Foo看成类,大写是类,首字母小写是函数 function test(){
console.log(this);
} test()=== window.test()
//函数执行相当于window.test().所以打印的this是window对象。 (function(){
console.log(this)
})() 这个叫自执行函数。this指的还是window。 题目0
var name="女神"
function Foo(name,age){
this.name=name;
this.age=age;
this.getName=function(){
console.log(this); (function(){
console.log(this.name) //自执行函数里面是window对象
})()
}
} obj = new Foo("文州",19)
obj.getName()
第一次打印文州,第二次打印女神 想要都打印文州的话
题目1
var name="女神"
function Foo(name,age){
this.name=name;
this.age=age;
this.getName=function(){
console.log(this);
var that =this //把当前环境的this赋值给that.那么这样2个都打印文州
(function(){
console.log(that.name)
})()
}
} obj = new Foo("文州",19)
obj.getName() //这样2个都执行文州。
题目2
var name="女神"
obj={
name:'文州',
age:19,
getName:function(){
console.log(this);
var that =this
(function(){
console.log(that.name)
})()
}
}
obj.getName() //这个结果和上面的一样。只是(对象)的声明方式改变了而已。