在学习js与jq或者其他的内容this都是一个相对重要的知识点下面我来为大家说一下this的指向问题
1、在对象内部的方法。this指向当前方法所指的对象
<script >
//1
name='hello';
var obj={
name:'hi',
foo:function(){
console.log(this.name);
}
}
obj.foo();
//2
function hil(){
console.log(this.name);
}
name='hello';
var obj={
name:'hi',
fool:hil
}
obj.fool();
</script>
2、普通的函数。this指向window。打印的是nihao
<script type="text/javascript">
var name='nihao';
function This(){
console.log(this);
var name='hello';
console.log(this.name);
}
This();
</script>
3、构造函数。this指向实例出来的对象
function Person(name) {
this.name = name;
console.log(this); //Person {name: "heihei"}
}
var person = new Person('heihei');
console.log(person.name); //heihei
//2
function Person(name) {
this.name = name;
console.log(this); //window
}
Person('hehe');
console.log(window.name); //hehe
4、事件中。this指向当前绑定的元素
5、定时器中。this指向window
<script>
function xixi(){
console.log(this+'=');
}
setTimeout(function(){
console.log(this);
},1000);
setTimeout(xixi,1000);
</script>