盘点总结JavaScript中的this指向

在JavaScript中的this指向

1、在构造函数中,this 指向的是 this 实例

function Person(name, age) {
    this.name = name
    this.age = age
    console.log(this)
    console.log(this.__proto__.constructor)
}
var zs = new Person('zs', 10)
var ls = new Person('ls', 20)

2、在原型对象函数里面的 this 指向的是实例对象

Array.prototype.pt = function() {
    console.log(this, 111)
}
var a = [1, 2, 3, 4]
a.pt()

3、在普通函数中 this 指向 window

function fn() {
	console.log(this);
}
fn();

4、在绑定事件函数中,this 指向函数的调用者

<body>
	<button id="btn">按钮</button>

	<script>
		var btn = document.getElementById('btn');
		btn.onclick = function () {
			console.log(this);
		};
	</script>
</body>

5、定时器函数,this 指向的是 window

setTimeout(function () {
	console.log(this, 111);
}, 1000);

6、对象的方法,this 指向的是对象本身

var obj = {
    name: 'zs',
    say: function() {
        console.log('my name is' + this.name)
    }
}
obj.say();

7、匿名函数的 this 指向 window,匿名函数的执行环境具有全局性,因此 this 指向一般是 window

var name = 'this window'
var obj = {
    name: 'my window',
    getName: function() {
        console.log(this, 'this')
        return function() {
            return this.name
        }
    }
}
console.log(obj.getName()())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值