我希望有一些函数可以获取当前状态来用它做一些逻辑,而不必通过参数将当前状态传递给函数。这是我的例子。在我的Action文件中,我有:exportconstaddToSearchHistory=(newSearch)=>({type:ADD_TO_SEARCH_HISTORY,newSearch})exportconstaddToCardHistory=(newCard)=>({type:ADD_TO_CARD_HISTORY,newCard})例如,我想要一个“getter”函数,告诉我“搜索历史”是否已经达到10个项目。所以我所做的是:exportconstsearchHasMaxH
在像这样的对象中使用get时,get有效:varpeople={name:"Alex",getsayHi(){return`Hi,${this.name}!`}};varperson=people;document.write(person.sayHi);但是对于一个函数,我得到了一个错误。如何在这样的函数中使用Getters和Setters?functionPeople2(){this.name="Mike";getsayHi(){return`Hi,${this.name}!`;}};varuser=newPeople2();document.write(user.sayHi);
我正在使用node.js/express堆栈开发一个网站,我正在尝试以对我来说很新的函数式风格进行开发。express方式res.send要求将函数作为方法调用,因为它在函数体中引用this,但调用方法在函数式风格中并不自然。你可以把这个方法放在一个getter函数后面,把它变成一个函数,但我不知道除了代码复杂之外还有什么缺点吗?例子:(function(){"usestrict";functionFoo(){functionbar(){console.log(this.x);}return{bar,getbaz(){vars=this;return()=>s.bar();}}}var
我有一个这样的Vue组件:import{mapActions,mapGetters}from'vuex'exportdefault{props:['index'],computed:{...mapGetters(['type','width','height','description','smtTagMeasureUnits','tagValue'])}{{description(index)}}{{tagValue(index)}}{{smtTagMeasureUnits(index)}}...作为prop进入组件的参数index已成功传递给getters:getters:{...
谁能帮我理解'_'字符在javascript的setter和getter中的意义。例如,我有以下代码可以正常工作。varuser={getname(){returnthis._name;},setname(value){this._name=value;}};varme=user;me.name="Rob";alert(me.name);但是如果我删除下划线使我的代码看起来像下面这样,那么我的代码将无法运行并且我在浏览器控制台中收到一个错误,指出“RangeError:超出最大调用堆栈大小。”varuser={getname(){returnthis.name;},setname(va
我倾向于假设getter只不过是围绕一组相当轻量级的指令的访问控制包装器,用于返回一个值(或一组值)。因此,当我发现自己编写的setter更长、更耗CPU时,我觉得也许这不是最明智的做法。在我自己的代码中调用getter(特别是让我们引用C#,其中方法调用与getter调用之间存在语法差异)时,我隐含地假设它们是轻量级的——但实际上这可能不是案例。对此的普遍共识是什么?除了使用其他人的库之外,您是否编写heavygetters?还是您倾向于将较重的getter视为“完整方法”?附言。由于语言差异,我预计对此会有很多不同的想法...... 最佳答案
这个问题在这里已经有了答案:关闭11年前。PossibleDuplicates:Whyusegettersandsetters?C#3.0Auto-Properties-usefulornot?用下面的方式定义属性有区别吗-//private,withgetter&setterprivatestringfName;publicstringName{get{returnthis.fName}set{this.fName=value}}//defineasaPropertypublicstringName{get;set;}据我所知,这只是一种风格偏好。我错过了什么吗?
fiddle:here我正在使用带有Vuex的Vue2创建一个网络应用程序。我有一家商店,我想从getter那里获取状态数据,我想要的是如果getter发现数据尚未填充,它会调用dispatch并获取数据。以下是我的Vuex商店:conststate={pets:[]};constmutations={SET_PETS(state,response){state.pets=response;}};constactions={FETCH_PETS:(state)=>{setTimeout(function(){state.commit('SET_PETS',['t7m12qbvb/app
我不喜欢为我的实体类的每个属性都使用“愚蠢的”getter和setter,因此我正在考虑使用魔术方法来获取/设置这些属性,而不是创建每个单独的getter和setter。这个想法是在逻辑不同于典型的“return$name”或“$this->name=$name”时创建一个特定的getter或setter。此外,这个神奇的方法将在不同的类上创建,每个实体都会扩展它(我没有想太多这一步)无论如何,您如何看待用魔术方法替换getters/setters?它会惩罚太多的表现吗?还有其他我没有考虑到的问题吗? 最佳答案 问题在于,例如sym
我的问题更多是关于术语而不是技术细节(或者是?)。类中的getter方法和公共(public)方法有什么区别?它们是同一个还是它们之间有区别?我问是因为我正在尝试学习最佳编码实践,而这个领域对我来说似乎是灰色的。我在评论我的代码时注意到我有一个很大的部分叫做“Getters”和另一个很大的部分叫做“公共(public)方法”然后我就像......“有什么区别?!”。谢谢! 最佳答案 简单来说,PHP中的getter只是一种允许代码的其他部分访问特定类属性的方法。例如:name=$name;}//Getterpublicfunctio