Javascript中的对象是由属性和值组成的键值对,其中每个属性都可以是基本类型值或函数。在对象上下文中,特殊的关键字“this”用于引用对象本身。
例如,在一个函数中,当对象的方法被调用时,该函数中的"this"指向该对象:
const person = {firstName: "John",lastName : "Doe",fullName : function() {return this.firstName + " " + this.lastName;}};console.log(person.fullName()); // 输出 "John Doe"
这里,对象person中的方法"fullName()"返回对象的完整名称。"this"关键字用于从方法中引用对象本身。
当对象通过函数传递时,this的值可能会发生变化。在以下示例中:
const person = {firstName: "John",lastName : "Doe",fullName : function() {return this.firstName + " " + this.lastName;}};function greeting() {return "Hello " + this.fullName() + "!";}console.log(greeting.call(person)); // 输出 "Hello John Doe!"
在这里,函数"greeting()"接收对对象"person"的引用。使用call()函数调用该函数,并将"person"作为函数的上下文传递。因此,this关键字在函数中指向对象"person"。
当使用箭头函数时,this的值也可能会发生变化。
const person = {firstName: "John",lastName : "Doe",fullName : function() {return () =>this.firstName + " " + this.lastName;}};const fullNameFunction = person.fullName();console.log(fullNameFunction()); // 输出 "John Doe"
在这里,箭头函数继承了其父级的上下文,因此this关键字在箭头函数中指向对象"person"。
总之,在Javascript中,this关键字用于引用当前对象。因此,了解this是编写面向对象代码的重要组成部分。