JS中如何精简理解函数的this指向?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1359个文字,预计阅读时间需要6分钟。
从原理出发,首先我们围绕this能力进行详细探讨。this最终指向它的调用者。这句话看似简单,但深入理解其背后的执行原理才能更好地解决问题。
从原理出发首先我们围绕耳熟能详的“this始终指向它的调用者”开始。这句结论虽然没有什么问题,但是说得过于笼统,还是得深入到背后的执行原理才能举一反三解决问题。
举个简单的例子:
var obj = {
num: 2;
foo: function () { console.log(this.num) }
};
var foo = obj.foo;
var num = 3;
obj.foo();//2
foo();//3
①obj.foo();是对象obj调用自身的属性(方法)foo,this指向调用者obj。
②由var foo = obj.foo;获取函数,并用foo();在全局作用域中调用函数,所以this指向浏览器全局对象Window。
JS之所以设计this,是因为其内存的数据结构的特征。
本文共计1359个文字,预计阅读时间需要6分钟。
从原理出发,首先我们围绕this能力进行详细探讨。this最终指向它的调用者。这句话看似简单,但深入理解其背后的执行原理才能更好地解决问题。
从原理出发首先我们围绕耳熟能详的“this始终指向它的调用者”开始。这句结论虽然没有什么问题,但是说得过于笼统,还是得深入到背后的执行原理才能举一反三解决问题。
举个简单的例子:
var obj = {
num: 2;
foo: function () { console.log(this.num) }
};
var foo = obj.foo;
var num = 3;
obj.foo();//2
foo();//3
①obj.foo();是对象obj调用自身的属性(方法)foo,this指向调用者obj。
②由var foo = obj.foo;获取函数,并用foo();在全局作用域中调用函数,所以this指向浏览器全局对象Window。
JS之所以设计this,是因为其内存的数据结构的特征。

