
全局范围:在全局上下文中,this 指的是全局对象(例如,窗口)。
函数上下文:在常规函数中,这在严格和非严格模式下表现不同,返回未定义或全局对象。
方法:在对象方法中,this 指对象本身,允许访问其属性。
调用、应用、绑定:这些方法允许通过更改 this 上下文来在对象之间共享函数。
立即学习“Java免费学习笔记(深入)”;
箭头函数:箭头函数没有自己的 this,而是从其封闭的词法上下文继承它。
dom 元素:在 dom 事件处理程序中,这是指触发事件的 html 元素。
首先,我们来看看“this”在全局范围内的行为方式。在 javascript 中,当您在代码顶层引用“this”时,它指的是全局对象。在网络浏览器中,这个全局对象是窗口。
例如:
console.log(this); // outputs: window
然而,在 node.js 中,全局对象是不同的,被称为 global.
因此,“this”的值可能会根据 javascript 代码执行的环境而变化。
接下来,让我们探讨一下“this”在函数内部的行为方式。当你定义一个函数并调用它时,该函数内“this”的值将取决于该函数的调用方式。
在非严格模式下,如果您在函数中记录“this”,它也会引用全局对象:
function test() {
console.log(this);
}
test(); // outputs: window
但是,如果您通过添加“use strict”来启用严格模式;在函数的顶部,“this”将是未定义:
本文档主要讲述的是Python开发网站指南;HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器 Python和其他程序语言一样,有自身的一套流程控制语句,而且这些语句的语法和其它程序语言类似,都有for, if ,while 类的关键字来表达程序流程。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
'use strict';
function test() {
console.log(this);
}
test(); // outputs: undefined
此行为是 this 替换 的结果,它指出如果“this”在非严格模式下为 null 或未定义,则它默认为全局对象。
理解严格模式和非严格模式之间的区别至关重要。在非严格模式下,“this”的值可以是全局对象,但在严格模式下,如果没有显式绑定到对象,它就会变成未定义。
回顾一下:
现在,让我们讨论“this”在对象方法中的行为方式。当函数在对象内部定义时,它被视为方法,并且在调用该方法时“this”将引用该对象:
const obj = {
name: 'my object',
getname: function() {
console.log(this.name);
}
};
obj.getname(); // outputs: my object
这里,“this”指的是“obj”,即定义该方法的对象。
为了在对象之间共享方法,javascript 提供了三个函数:call、apply 和 bind。其中每一个都允许您显式设置“this”的值:
例如:
const student1 = {
name: 'alice',
printname: function() {
console.log(this.name);
}
};
const student2 = {
name: 'bob'
};
// using call
student1.printname.call(student2); // outputs: bob
在这种情况下,printname中的“this”指的是student2而不是student1。
箭头函数的行为与传统函数不同。他们没有自己的“这个”上下文;相反,它们从封闭的词汇上下文继承“this”。这意味着箭头函数内的“this”与函数外的“this”指的是相同的值:
const obj = {
value: 42,
getvalue: function() {
const arrowfunc = () => {
console.log(this.value);
};
arrowfunc();
}
};
obj.getvalue(); // outputs: 42
这里,箭头函数中的“this”指的是“obj”对象,演示了箭头函数如何从其封闭上下文中捕获“this”值。
最后,在使用 dom 时,“this”可以指触发事件的 html 元素。例如:
document.getElementById('myButton').onclick = function() {
console.log(this); // Refers to the button element
};
在这种情况下,当单击按钮时,“this”将引用按钮元素本身。
感谢您的阅读,如果您发现本指南有帮助,请与其他开发人员分享,并继续练习以巩固您对 javascript 中“this”的理解!
以上就是JavaScript 中的“this”关键字到底是什么?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号