一、概念:
-
函数的上下文(this)由调用函数的方式决定,function是“运行时上下文”策略;
-
函数如果不调用,则不能确定函数的上下文。
二、规则:
| var name = '小红' |
| const people = { |
| name:'小明', |
| age:12, |
| sayHello(){ |
| console.log(this.name); |
| } |
| } |
| people.sayHello(); |
-
圆括号直接调用函数,则函数的上下文是window对象
| var name = "老六" |
| function winDow(){ |
| let name = "铁蛋" |
| console.log(this.name); |
| } |
| winDow(); |
| const arr = ['a',0,'b',1,function(){console.log(this[0])}]; |
| arr[4](); |
-
IIFE(自调用)中的函数,上下文是window对象
| var name = "李白" |
| (function(){ |
| let name = '王麻子' |
| console.log(this.name) |
| })() |
| var name = "王五" |
| const xiaoHong = { |
| name:'小栗子', |
| age:18, |
| fun(){ |
| setTimeout(function(){ |
| console.log(this.name) |
| },1000) |
| } |
| } |
| xiaoHong.fun(); |
| |
| <p>我是狗蛋</p> |
| |
| const domP = document.querySelector('p'); |
| domP.onclick = function(){ |
| console.log(this.innerText); |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!