javascript中的this的用法

javascript中的this,在不同情况下得到的值不同。

在全局作用域中

指向 window 对象

1
console.log(this); // Window

在构造函数中

指向通过构造函数创建的对象

1
2
3
4
5
function A() {
this.name = 'myj';
}
var a = new A();
console.log(a.name); // myj

在普通函数中

指向 window 对象

1
2
3
4
function b() {
console.log(this);
}
b(); // Window

在局部函数/回调函数中

指向 window 对象

1
2
3
4
5
6
7
function d() {
function e() {
console.log(this);// Window
}
e();
}
d();

在对象的方法中

指向当前对象

1
2
3
4
5
6
7
function fn() {
console.log(this);
}
var obj = {
sayMe : fn
}
obj.sayMe(); // Object { sayMe: fn() } -- 即obj对象

在事件的处理函数中

指向触发当前事件的标签

1
2
3
4
var  btn = document.getElementById('btn');
btn.onclick = function () {
console.log(this); // <button id="btn">button</button>
}

使用call和apply调用的函数,第一个参数就是this

-------------本文结束感谢您的阅读-------------
Fork me on GitHub