javascript中的this指向
导读:JavaScript中的this指向是一个非常重要的概念。它可以用来引用当前执行代码的对象,但是,在不同的情况下this的指向会发生改变,因此我们需要注意它的一些特殊情况。对于全局作用域的对象而言,this通常指向的是window对象,例如...
JavaScript中的this指向是一个非常重要的概念。它可以用来引用当前执行代码的对象,但是,在不同的情况下this的指向会发生改变,因此我们需要注意它的一些特殊情况。
对于全局作用域的对象而言,this通常指向的是window对象,例如:
console.log(this); // 输出的结果应该是window对象
对于函数中的this,this的指向会根据函数的调用方式来决定。例如:
function foo() {
console.log(this);
}
foo();
// 输出的结果是window对象,即全局作用域对象var obj = {
bar: foo}
;
obj.bar();
// 输出的结果是obj对象对于通过call和apply来调用函数的情况,this会被显式地指定到调用的对象上,例如:
var obj = {
x: 'Hello, ',y: 'world!'}
;
function greeting() {
console.log(this.x + this.y);
}
greeting.call(obj);
// 输出的结果是'Hello, world!'this的指向也可以被箭头函数影响,箭头函数的this被继承自其父级作用域的this:
var obj = {
x: 'Hello, ',y: 'world!',greeting: () =>
console.log(this.x + this.y)}
;
obj.greeting();
// 输出的结果是undefined,因为箭头函数的this被继承自全局作用域的this闭包函数也会影响this的指向,例如:
var obj = {
x: 'Hello, ',y: 'world!',greeting: function() {
var self = this;
// 在闭包函数之前缓存thisfunction inner() {
console.log(self.x + self.y);
}
inner();
}
}
;
obj.greeting();
// 输出的结果是'Hello, world!'this的指向在JavaScript中是一个很大的话题,需要我们格外注意。如果我们理解了this的指向规则,那么我们就能更好地理解与编写代码。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript中的this指向
本文地址: https://pptw.com/jishu/549002.html
