javascript this指向什么_如何确定this在不同上下文的值?

admin 百科 12
JavaScript中this的指向由调用方式决定而非定义位置:普通调用时非严格模式指向全局对象、严格模式为undefined;方法调用时指向调用对象;call/apply/bind可显式绑定;箭头函数无this,继承外层函数this。

javascript this指向什么_如何确定this在不同上下文的值?-第1张图片-佛山资讯网

JavaScript 中的 this 指向当前执行上下文的“所有者对象”,但它**不是定义时决定的,而是调用时决定的**。理解 this 的关键在于看函数**怎么被调用**,而不是怎么被声明。

普通函数调用(非严格模式 vs 严格模式)

直接调用函数(如 foo()),this 的值取决于是否启用严格模式:

  • 非严格模式下,this 指向全局对象(浏览器中是 window,Node.js 中是 global
  • 严格模式下,this 是 undefined

例如:

function say() { console.log(this); }
say(); // 非严格:window;严格:undefined

登录后复制

方法调用(对象.方法)

当函数作为对象的属性被调用时,this 指向该对象

立即学习“Java免费学习笔记(深入)”;

const obj = {
  name: 'Alice',
  greet() { console.log(this.name); }
};
obj.greet(); // 'Alice' → this 指向 obj

登录后复制

注意:一旦把方法单独提取出来,就变成普通调用,this 会丢失:

标签: javascript java js node.js node 浏览器 app win 作用域

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~