使用方法和设置器有什么区别?

例如:


var person = {

  firstName: "John",

  lastName : "Doe",

  language : "",

  set lang(lang) {

  this.language = lang.toUpperCase();

}

};


person.lang = "en";

console.log(person.language)


var person1 = {

 firstName: "John",

 lastName : "Doe",

 language : function(a){return a.toUpperCase()}

};

console.log(person1.language('en'))

这看起来完全一样,并且方法模式编写得较少,所以我为什么要使用 setter?


幕布斯6054654
浏览 88回答 1
1回答

qq_花开花谢_0

除了 getter 方法之外,我们还可以创建 setter 方法来重新分配对象内现有属性的值。setter 方法的示例:const person = {  _age: 37,  set age(newAge){    if (typeof newAge === 'number'){      this._age = newAge;    } else {      console.log('You must assign a number to age');    }  }};请注意,在上面的示例中:我们可以检查分配给 this._age 的值。当我们使用setter方法时,只有数字值才会重新分配this._age根据用于重新分配 this._age 的值,会有不同的输出。然后使用setter方法:    person.age = 40;    console.log(person._age); // Logs: 40    person.age = '40';        // Logs: You must assign a number to age像 Age 这样的 Setter 方法不需要使用一组括号来调用。从语法上看,我们似乎正在重新分配属性的值。与 getter 方法一样,使用 setter 方法也有类似的优点,包括检查输入、对属性执行操作以及显示对象应如何使用的明确意图。尽管如此,即使使用 setter 方法,仍然可以直接重新分配属性。例如,在上面的例子中,我们仍然可以直接设置._age:person._age = 'forty-five'console.log(person._age); // Prints forty-five
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript