【《你不知道的JS(中卷)》】一、关于this
2021-02-05 19:16
标签:过程 是什么 ase 对象 ext 活动 编写 方法 属性 ? 观察上面的代码,使用了this,identity函数就不再需要为每一个对象编写不同版本的函数。 回想之前学习的词法作用域,如果我们想要使用词法作用域来完成类似的功能,应该这样写: 显然,使用this的写法更加优雅。它的作用就是隐式“传递”一个对象引用。 ? JS中函数是一个对象,因此是可以在调用函数时存储状态的,但是this并不会指向函数本身。 ? this在任何情况下都不指向函数的词法作用域。在JS内部,作用域确实和对象类似,可见的标识符都是它的属性。但是作用域“对象”无法通过JS代码访问,它存在于JS引擎内部。 ? this是 动态作用域的表亲,this的绑定与函数声明的位置无关,而是取决于函数的调用方式。 ? 当一个函数被调用时,会创建一个活动记录(执行上下文)。这个记录会包含函数在哪里被调用(调用栈)、函数的调用方法、传入的参数等信息。this就是记录的其中一个属性,会在函数执行的过程中用到。 【《你不知道的JS(中卷)》】一、关于this 标签:过程 是什么 ase 对象 ext 活动 编写 方法 属性 原文地址:https://www.cnblogs.com/enmac/p/13122359.html一、关于this:
一)、为什么要用this?
function identity() {
return this.name.toUpperCase();
}
var me = {
name: "Kyle"
};
var you = {
name: "Reader"
};
identity.call(me); // Kyle
identity.call(you); // Reader
// 显式传入一个上下文对象
function identity(context) {
return context.name.toUpperCase();
}
// ...
identity(me); // Kyle
identity(you); // Reader
二)、关于this的说明:
1、this并不指向函数自身:
2、this的作用域:
三)、this到底是什么: