js中如何全面理解this作用域的原理和用法?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1623个文字,预计阅读时间需要7分钟。
目录+ this作用域问题+ 函数式调用+ 方法调用模式+ 在数组中的特例+ 构造器调用模式+ call、apply、bind+ 特殊情况箭头函数+ 综合案例+ this作用域问题:一般来讲,谁调用该方法,this就指向谁。
目录
- this作用域问题
- 函数式调用
- 方法调用模式
- 在数组中的特例
- 构造器调用模式
- call、apply、bind
- 特殊情况——箭头函数
- 综合例题
this作用域问题
一般来说,谁调指谁是一个基本原则,但是js和其他面向对象语言稍微有些区别,虽然从某种程度上,这有助于帮我们判断this指向问题,但是并不能涵盖所有的情况,建议从函数调用的5种方式展开
- 1.函数式调用
- 2.方法调用模式
- 3.构造函数调用模式(this指向实例)
- 4.call、apply、bind
- 5.特殊情况——箭头函数
函数式调用
var age = 10 var person = { age:12, say(){ function f(){ console.log(this.age) } f() } } person.say()// 10
以此模式调用函数时,this被绑定到全局对象。这是语言设计上的一个错误。
本文共计1623个文字,预计阅读时间需要7分钟。
目录+ this作用域问题+ 函数式调用+ 方法调用模式+ 在数组中的特例+ 构造器调用模式+ call、apply、bind+ 特殊情况箭头函数+ 综合案例+ this作用域问题:一般来讲,谁调用该方法,this就指向谁。
目录
- this作用域问题
- 函数式调用
- 方法调用模式
- 在数组中的特例
- 构造器调用模式
- call、apply、bind
- 特殊情况——箭头函数
- 综合例题
this作用域问题
一般来说,谁调指谁是一个基本原则,但是js和其他面向对象语言稍微有些区别,虽然从某种程度上,这有助于帮我们判断this指向问题,但是并不能涵盖所有的情况,建议从函数调用的5种方式展开
- 1.函数式调用
- 2.方法调用模式
- 3.构造函数调用模式(this指向实例)
- 4.call、apply、bind
- 5.特殊情况——箭头函数
函数式调用
var age = 10 var person = { age:12, say(){ function f(){ console.log(this.age) } f() } } person.say()// 10
以此模式调用函数时,this被绑定到全局对象。这是语言设计上的一个错误。

