用Javascript创建setter

用Javascript创建setter,javascript,Javascript,我想在JS中创建一个setter。但我的代码有点问题,这是我的代码: 类测试{ 建造师(str){ this.name=str; } 集合名称(str){ 这个。sayHi(); } (){ 设temp=this.name; log(`My name is${temp}`) } } 设a=newtest('bill')//我的名字未定义 a、 sayHi()//我的名字未定义请尝试以下操作: class test { constructor(str) { this.name = s

我想在JS中创建一个setter。但我的代码有点问题,这是我的代码:

类测试{
建造师(str){
this.name=str;
}
集合名称(str){
这个。sayHi();
}
(){
设temp=this.name;
log(`My name is${temp}`)
}
}
设a=newtest('bill')//我的名字未定义
a、 sayHi()//我的名字未定义
请尝试以下操作:

class test {
 constructor(str) {
     this.name = str;
 }

 set name(str) {
     this._name = str
 }
 sayHi() {
     let temp = this.name;
     console.log(`My name is ${temp}`)
 }
 get name() {
     return this._name
 }
}
请尝试以下方法:

class test {
 constructor(str) {
     this.name = str;
 }

 set name(str) {
     this._name = str
 }
 sayHi() {
     let temp = this.name;
     console.log(`My name is ${temp}`)
 }
 get name() {
     return this._name
 }
}

您的setter需要将值存储在某个位置;您还需要一个getter从该位置获取值

下面是一个将值存储在另一个属性中的简单示例:

类测试{
建造师(str){
这个。_name=str;//***
//(您可以在此处使用'this.name=str',setter有时是
//被认为是中“不调用方法”的一个例外
//“构造函数”规则)
}
集合名称(str){
这个。_name=str;//***
}
获取名称(){//***
返回此。\u name;//***
}                      // ***
(){
设temp=this.name;
log(`My name is${temp}`)
}
}
设a=newtest('bill')//我的名字未定义

a、 sayHi()//我的名字未定义
您的setter需要将值存储在某个地方;您还需要一个getter从该位置获取值

下面是一个将值存储在另一个属性中的简单示例:

类测试{
建造师(str){
这个。_name=str;//***
//(您可以在此处使用'this.name=str',setter有时是
//被认为是中“不调用方法”的一个例外
//“构造函数”规则)
}
集合名称(str){
这个。_name=str;//***
}
获取名称(){//***
返回此。\u name;//***
}                      // ***
(){
设temp=this.name;
log(`My name is${temp}`)
}
}
设a=newtest('bill')//我的名字未定义

a、 sayHi()//我的名字是未定义的
,因为你没有在setter中设置任何东西。
console.log('My name's'+this.name)
,因为你没有在setter中设置任何东西。
console.log('My name's'+this.name)
@Li357否则你会得到无限的recursion@dorintufar我没看到,我的bad@Li357否则你会得到无穷大recursion@dorintufar我没有看到,我的宝贝谢谢你的解释:)我是JavaScript新手,我不知道如何正确使用setter和getter,有什么信息吗?谢谢你的解释:)我是JavaScript新手,我不知道如何正确使用setter和getter,有什么信息吗?谢谢你的解释:)我是JavaScript新手,我不知道如何正确使用setter和getter,有什么信息吗?谢谢你的解释:)我是JavaScript新手,我不知道如何以正确的方式使用setter和getter,是否有相关信息?