草庐IT

private-constructor

全部标签

javascript - ES7 类 : Declaring Properties Outside of Constructor

在构造函数内部和外部声明变量有什么区别吗?对于函数,'this'的绑定(bind)不同,但对于变量,我不知道是否存在差异。classWidget{constructor(constructorName){this.constructorName=constructorName;}nonConstructorName="nonConstructorName1";}varmyWidget=newWidget("myConstructorName1");console.log(myWidget.constructorName);//"myConstructorName1"console.lo

Javascript:私有(private)函数的嵌套——好还是坏?

我经常使用这种结构:varexample=(function(){functionprivateFn2(){...}functionprivateFn1(){...}return{publicMethod1:function(){...},publicMethod2:function(){...}};}());我想知道的是:如果privateFn1是唯一调用privateFn2的函数/方法,按如下方式设置它是否被认为是更好的做法?为清晰起见已编辑varexample=(function(){functionprivateFn1(){functionprivateFn2(){}...pr

javascript - 如何在命名空间中创建私有(private)变量?

对于我的Web应用程序,我在JavaScript中创建一个namespace,如下所示:varcom={example:{}};com.example.func1=function(args){...}com.example.func2=function(args){...}com.example.func3=function(args){...}我还想创建“私有(private)”(我知道这在JS中不存在)命名空间变量,但我不确定最好的设计模式是什么。会不会是:com.example._var1=null;或者设计模式会是别的东西吗? 最佳答案

javascript - 私有(private)和特权方法与原型(prototype)方法

在JavaScript中,我可以通过在构造函数中声明来创建私有(private)和特权方法。通过这种方式,我必须将它们移出对象的原型(prototype)。然后我失去了继承的可能性和一些性能,因为每个对象都将拥有这些方法的自己的副本,而不是访问一个原型(prototype)对象。所以我现在的问题是什么可能是petter模式:是否使用私有(private)和特权方法。我不太喜欢悬挂,所以我想避免这种情况。那怎么办呢?你的经历是什么? 最佳答案 我从未发现在JavaScript中创建所谓的“私有(private)”函数有任何值(valu

javascript - 你能在 JavaScript 中继承私有(private)函数吗?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion我正在使用闭包来创建具有私有(private)和公共(public)方法的对象。看起来像这样-varDog=(function(){functionDog(){}varsize='big';var_privateSaySize=function(){return'Iama'

javascript - React.js 和 ES6 : Any reason not to bind a function in the constructor

我正在将React组件更新为ES6,遇到了这个问题中描述的问题-UnabletoaccessReactinstance(this)insideeventhandler-即不绑定(bind)到组件实例。这是有道理的,当然也行得通,但我对答案的另一部分感到困惑:Beawarethatbindingafunctioncreatesanewfunction.Youcaneitherbinditdirectlyinrender,whichmeansanewfunctionwillbecreatedeverytimethecomponentrenders,orbinditinyourconstru

JavaScript:覆盖 Date.prototype.constructor

我想更改标准日期对象的行为。传递给构造函数的0..99之间的年份应解释为fullYear(不添加1900)。但是我的以下功能不起作用varoDateConst=Date.prototype.constructor;//saveoldcontructorDate.prototype.constructor=function(){vard=oDateConst.apply(oDateConst,arguments);//createobjectwithitif(((arguments.length==3)||(arguments.length==6))&&((arguments[0]=0)

javascript - javascript中的私有(private)静态函数

如何创建一个无法从外部调用的函数?varobj={function1:function(){alert("function1");},function2:function(){alert("function2...");obj.function1();}};//sohowtomakethisfunctionunaccessibleobj.function1();//andyoucouldonlycallthisfunctionobj.function2(); 最佳答案 您可能需要考虑使用YahooModulePattern.这是一个

javascript - React Router V4 使用 Redux-persist 和 React-snapshot 保护私有(private)路由

我正在使用ReactRouter实现私有(private)路由Route组件:functionPrivateRoute({component:Component,authed,emailVerified,...rest}){return(authed===true?:}/>)}预期行为:authed通过使用redux-persist通过页面刷新持久保存所以在页面刷新或重新加载时,如果authedProp是true那么路由器应该呈现从来没有去路径"/"问题所在的实际行为:与authed===true(坚持)重新加载页面或刷新页面会导致发生以下操作(选中reduxdevtools)那个行动

javascript - 如何使用可重用方法和私有(private)属性创建 Javascript 对象创建模式?

考虑到具有私有(private)属性的对象创建模式,一种方法是:functionMyStack(){varlist=[],index=0;this.push=function(val){returnlist[index++]=val;};this.pop=function(){//...}}varstack1=newMyStack();stack1.push(5);varstack2=newMyStack();stack2.push(11);问题在于:Stack的每个实例都有它自己的“push”和“pop”方法副本。另一种实现构造方法的方法是:functionMyStack(){thi