Javascript getter是如何工作的?
我已经在我的应用程序中使用javascript getter很长一段时间了,并且一直认为 他们是这样工作的:Javascript getter是如何工作的?,javascript,oop,Javascript,Oop,我已经在我的应用程序中使用javascript getter很长一段时间了,并且一直认为 他们是这样工作的: myobject.prototype.__defineGetter__('something', function () { return DoSomeHeavyComputation() // this will be executed only once and will be saved }) new myobject() myobject.something // the
myobject.prototype.__defineGetter__('something', function () {
return DoSomeHeavyComputation() // this will be executed only once and will be saved
})
new myobject()
myobject.something // the computation will be done here
myobject.something // no computation will be done here.
我刚发现每次都要计算
是否有一个资源或东西可以展示它们是如何实际工作的?这篇文章非常棒,并且深入了解了原型设计和对象实例化的本质:如果您在对象的属性上定义了一个getter,那么每次尝试访问该属性时都会调用它
obj.prop;
如果要缓存结果,应手动执行
类似地,如果在对象的属性上定义setter,则每次设置属性时都会调用该setter
obj.prop = 1;
我想你正在寻找类似于备忘录的东西
这只是一个函数,而不是其他函数。您可以缓存该值,例如通过执行返回函数的函数。