对象方法:在 JavaScript 对象中定义和使用函数
在 JavaScript 中,对象方法是指作为对象属性存储的函数。这些方法使得对象能够执行动作,从而为对象提供行为。对象方法的调用与普通函数的调用类似,但它们与对象的其他属性一起存储在对象中。
定义对象方法
对象方法在对象字面量中定义,使用函数表达式作为属性的值。
基本语法:
let objectName = {
propertyName: function() {
// 方法体
},
// 其他属性或方法
};
调用对象方法
要调用对象方法,需要使用属性访问语法后跟一对圆括号 ()
。
调用方法示例:
let person = {
firstName: "John",
lastName: "Doe",
fullName: function() {
return this.firstName + " " + this.lastName;
}
};
let name = person.fullName(); // "John Doe"
console.log(name);
对象方法的 this 关键字
在对象方法中,this
关键字通常指向调用该方法的对象。它允许方法访问和操作对象的其他属性。
使用 this 示例:
person.introduce = function() {
console.log("Hello, my name is " + this.fullName());
};
person.introduce(); // Hello, my name is John Doe
访问对象属性与方法
如果你错误地以调用函数的方式访问对象的属性,但该属性实际上是一个方法,那么 JavaScript 会返回该方法的定义作为一个字符串。
错误访问示例:
let methodAsString = person.fullName; // "function() { return this.firstName + " " + this.lastName; }"
console.log(methodAsString);
代码示例
以下是一个包含多个方法的 JavaScript 对象的示例:
let person = {
firstName: "Jane",
lastName: "Doe",
age: 30,
// 对象方法:获取全名
fullName: function() {
return this.firstName + " " + this.lastName;
},
// 对象方法:介绍自己
introduce: function() {
console.log("Hello, my name is " + this.fullName() + " and I am " + this.age + " years old.");
},
// 对象方法:更新年龄
updateAge: function(newAge) {
this.age = newAge;
}
};
// 调用方法
console.log(person.fullName()); // 输出: Jane Doe
person.introduce(); // 输出: Hello, my name is Jane Doe and I am 30 years old.
// 更新年龄
person.updateAge(31);
console.log(person.age); // 输出: 31