JS的get和set使用示例


在JavaScript中,`get` 和 `set` 是用于对象属性上的访问器属性(Accessor Properties)的特殊方法。它们允许你在读取或设置属性值时执行代码。这是一个简单的示例,展示了如何使用 `get` 和 `set`:


const person = {
    firstName: "John",
    lastName: "Doe",
    // 使用get定义属性fullName的读取行为
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    },
    // 使用set定义属性fullName的设置行为
    set fullName(value) {
        // 假设value是"firstName lastName"的格式
        const [firstName, lastName] = value.split(' ');
        this.firstName = firstName;
        this.lastName = lastName;
    }
};

console.log(person.fullName); // 输出: John Doe

// 使用set设置fullName
person.fullName = "Jane Smith";
console.log(person.firstName); // 输出: Jane
console.log(person.lastName);  // 输出: Smith

在这个例子中,`fullName` 不是一个直接存储数据的属性,而是一个访问器属性。当你尝试读取 `person.fullName` 时,实际上会执行 `get fullName()` 方法,并返回拼接后的全名。同样地,当你尝试设置 `person.fullName` 的值时,会执行 `set fullName(value)` 方法,该方法将传入的字符串 `value` 拆分为 `firstName` 和 `lastName`,并分别更新到对象的 `firstName` 和 `lastName` 属性上。

这种方式提供了对对象属性访问和修改的细粒度控制,非常适合需要执行额外逻辑或验证的场景。