Javascript 在递归循环中调用setter
我有一个Javascript类,它是:Javascript 在递归循环中调用setter,javascript,Javascript,我有一个Javascript类,它是: class mockUser { constructor ( location, ) { this.location = location; } set location (data) { this.location = data; // here's the problem } } 但是当我尝试使用set关键字时,我得到一个警告,说函数位置无限期地递归,只能通过抛出异常来结束。为什么呢 我是说我能做到
class mockUser {
constructor (
location,
) {
this.location = location;
}
set location (data) {
this.location = data; // here's the problem
}
}
但是当我尝试使用set
关键字时,我得到一个警告,说函数位置无限期地递归,只能通过抛出异常来结束。为什么呢
我是说我能做到
setLocation (data) {
this.location = data; // here's the problem
}
但是set
的意义是什么呢
我想我误解了什么。“Set”的意思是“当有东西试图设置这个属性时,调用这个函数”
因此,通过在setter中设置位置,您就调用了setter——因此是递归。所以我实际上不必创建setter?只需像obj.location='test'
那样分配它即可?还是二传是个好主意?是的,这是我的理解。当您希望某个赋值影响对象的其他属性时,setter非常有用。我看到的一个很好的例子是obj.fullName=“Joe Bloggs”会将字符串围绕空格拆分,并填充firstName和lastName属性——在内部,fullName属性实际上并不存在。