Javascript setter在这个代码中做什么?ES6:使用getter和setter控制对对象的访问
我知道这段代码的原因是将华氏温度更改为摄氏温度,但是如果get已经返回摄氏温度,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
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。