Javascript setter在这个代码中做什么?ES6:使用getter和setter控制对对象的访问

Javascript setter在这个代码中做什么?ES6:使用getter和setter控制对对象的访问,javascript,Javascript,我知道这段代码的原因是将华氏温度更改为摄氏温度,但是如果get已经返回摄氏温度,setter在代码中做什么 function makeClass() { "use strict"; /* Alter code below this line */ class Thermostat{ constructor(value){ this._fahrenheit = value; } get temperature(){ return (5/9

我知道这段代码的原因是将华氏温度更改为摄氏温度,但是如果get已经返回摄氏温度,setter在代码中做什么

function makeClass() {
  "use strict";
  /* Alter code below this line */
  class Thermostat{
    constructor(value){
      this._fahrenheit = value;
    }
    get temperature(){
      return (5/9 * (this._fahrenheit - 32));
    }
    set temperature(value){
      this._fahrenheit - (value * 9) / 5.0 + 32;
    }
  }
  /* Alter code above this line */
  return Thermostat;
}
const Thermostat = makeClass();
const thermos = new Thermostat(76); // setting in Farenheit scale
let temp = thermos.temperature; // 24.44 in C
thermos.temperature = 26;
temp = thermos.temperature; // 26 in C

它进行一些计算,但不返回任何值,也不设置任何变量。除了消耗最少的处理器时间外,它什么也不做。

它进行一些计算,但不返回任何值,也不设置任何变量。除了消耗最少的处理器时间之外,它什么也不做。

我同意setter看起来根本没有用。事实上,它阻止类按(假定的)预期工作

此行无效,因为它不会更新
\u fahrenheit
属性:

this._fahrenheit - (value * 9) / 5.0 + 32;
它应该只“记录”新值,并让getter进行转换:

函数makeClass(){
“严格使用”;
类恒温器{
构造函数(值){
这。U fahrenheit=值;
}
获取温度(){
返回(5/9*(此温度为华氏32度);
}
设定温度(值){
这。_华氏度=数值;
}
}
回程恒温器;
}
恒温器常数=makeClass();
恒温器=新恒温器(76);//设置在法恩海氏量表中
让温度=保温瓶温度;//24.4444摄氏度
控制台日志(保温瓶温度);
保温瓶温度=98.6;

控制台日志(保温瓶温度);//37°Celcius
我同意setter一点用都没有。事实上,它阻止类按(假定的)预期工作

此行无效,因为它不会更新
\u fahrenheit
属性:

this._fahrenheit - (value * 9) / 5.0 + 32;
它应该只“记录”新值,并让getter进行转换:

函数makeClass(){
“严格使用”;
类恒温器{
构造函数(值){
这。_华氏度=数值;
}
获取温度(){
返回(5/9*(此温度为华氏32度);
}
设定温度(值){
这。_华氏度=数值;
}
}
回程恒温器;
}
恒温器常数=makeClass();
恒温器=新恒温器(76);//设置在法恩海氏量表中
let temp=热固性温度;//24.4444摄氏度
控制台日志(保温瓶温度);
保温瓶温度=98.6;

控制台日志(保温瓶温度);//37°Celcius
通过实现setter函数,用户仍然可以获得正确的值,可以选择以摄氏度或华氏度表示的温度。

通过实现setter函数,用户仍然可以获得正确的值,可以选择以摄氏度或华氏度表示的温度。

调用一个
.temperature
和另一个
.fahrenheit
没有意义。如果有的话,你应该有一个
温度
类,带有
华氏
摄氏
开尔文
属性。设置器没有意义。当然,这应该是一个
=
分配,而不是
-
。调用一个
.temperature
和另一个
.fahrenheit
没有意义。如果有的话,你应该有一个
温度
类,带有
华氏
摄氏
开尔文
属性。设置器没有意义。当然,这应该是一个
=
作业,而不是
-
。这也不起作用。当然
temp.temperature=temp.temperature
不应该改变任何东西。我同意,应该有一种方法可以转换为Celcius。这也不起作用。当然
temp.temperature=temp.temperature
不应该改变任何东西。我同意,应该有一种方法可以转换为Celcius。