美文网首页
中卷 第一章 关于this

中卷 第一章 关于this

作者: nymlc | 来源:发表于2018-04-22 18:13 被阅读0次

前言

一个东西既然存在必有其存在的价值

this为何存在

先来个例子自行体会

// this传递
function foo() {
    console.log('name:' + this.name);
}
var me = {
    name: 'me'
};
foo.call(me);
// 参数传递上下文
function foo(ctx) {
    console.log('name:' + ctx.name);
}
var me = {
    name: 'me'
};
foo(me);

误区

  1. 觉得this指向函数自身
    常见的函数引用自身无非就俩情况,一则递归,二则事件触发之后解绑
    函数内部引用自身一般通过函数标识符,若是匿名函数那么只能通过arguments.callee(弃用了,因为arguments太大,递归每次生成副本导致性能差),所以建议都具名
  2. 它的作用域
    this在任何情况下都不指向函数的词法作用域。在JS内部,作用域和对象很像,可见的标识符都是它的属性,不过这个"对象"无法通过代码访问,它存在于引擎内部

this是什么

this是运行时绑定的,它的上下文取决于函数调用时的各种条件。this的绑定和函数声明的位置无关,只取决于函数调用方式
当一个函数被调用时会创建一个活动记录也称为执行上下文。此记录包含函数在哪调用(调用栈)、传入的参数、函数的调用方法等,this就是该记录的一个属性

相关文章

网友评论

      本文标题:中卷 第一章 关于this

      本文链接:https://www.haomeiwen.com/subject/dblclftx.html