草庐IT

构造器

全部标签

javascript - JavaScript 中的构造函数概念

在我的一个问题中,我得到了以下代码作为答案之一。我对语言的理解现在已经好得多了,只有一个小问题。varperson=function(){this.firstName="";this.lastName="";}person.prototype.showFullName=function(){console.log(this.firstName+""+this.lastName);}varperObj=newperson();perObj.firstName="Penelope";perObj.lastName="Barrymore";perObj.showFullName();考虑对象

javascript - 重写 Javascript Date 构造函数?

我正在开发一个对当前日期敏感的浏览器应用程序。在我的应用程序代码中,我调用了newDate并根据当前时间执行计算并相应地呈现View。为了针对不同的潜在日历日测试我的应用程序,我将不得不不断地将我的系统时钟更改为过去或future,这很烦人而且可能对我的计算机不健康。因此纯粹出于测试目的(我永远不会在生产中使用此代码),我决定通过在控制台中执行此操作来覆盖内置的Date构造函数://createadateobjectforthisFriday:vard=newDate(2012,0,20)//overrideDateconstructorsoallnewlyconstructeddat

javascript - 为什么生成器方法是构造函数?

声明为方法(使用ES6增强对象字面量或类)的方法不是构造函数/没有原型(prototype)链。但是通过方法语法声明的生成器确实有一个原型(prototype)链并且是构造函数。以下面的例子为例——(需要v8)'usestrict';classx{*a(){this.b()}b(){print('classmethod');}}leti=newx();i.a.prototype.b=function(){print('generatormethod');};i.a().next();(newi.a()).next();输出,classmethodgeneratormethod虽然将原型

javascript - jQuery 构造函数和初始化

如果我发布console.dir(jQuery.prototype)我得到了jQuery对象中的方法和属性的漂亮列表。但是constructor和init是红色的,旁边有一个小加号。问:constructor和init与其他函数有何不同? 最佳答案 Firebug检查函数是否看起来像类函数(obj.prototype包含至少1个属性),并将其显示为具有可扩展属性的类。http://code.google.com/p/fbug/source/browse/branches/firebug1.8/content/firebug/dom/

javascript - DevTools 如何确定对象的构造函数名称?

我使用的是Chromev22.0.1229.94m,这并不重要,但以防万一:-)我不关心可移植性。只要它适用于Chrome(和Safari),我就很高兴。我有两个函数,foo和bar:varfoo=function(){...}functionbar(){...}然后如果我使用它们创建对象:f1=newfoo();b1=newbar();我可以获取bar的构造函数名称,但也不能获取foo的构造函数名称:>f1.constructor.name==>"">b1.constructor.name==>"bar"然而在这两种情况下,当我检查变量f1和b1时,DevTools控制台将显示名称“

javascript - 我是 'allowed' 修改构造函数中的 Prop 吗?

他们说你不应该修改React组件中的props。这是否扩展到在构造函数中修改它们?具体而言,exportdefaultclassBookingFormextendsReact.Component{constructor(props){//amIallowedtomodify`props`here?super(props);}}非常清楚,我知道JavaScript允许我这样做,我想问的是这是否是一种糟糕的设计模式,将来会让我头疼。我想在初始化时重新格式化一些Prop;之后他们不会再改变。 最佳答案 再重申一下zerkms向我指出,答案

javascript - 我如何猴子修补对象的构造函数?

我想猴子修补这个“Controller”对象的构造函数。但是我如何猴子修补构造函数以便我仍然可以调用原始函数?这是我试过的。//originalfunctionController(){this._tag='div';}Controller.prototype.tag=function(){console.log(this._tag);}varc=newController();c.tag();//->'div',asexpected//patchattemptvaroriginal=Controller;Controller=function(){original.apply(thi

javascript - 如何从对象中递归删除未定义的属性 - 同时保留构造函数链?

这是一个类似于Howtoremoveundefinedandnullvaluesfromanobjectusinglodash?的问题.但是,那里提出的解决方案不保留构造函数。除此之外,我只想删除那些以“_”开头的键。这就是我正在寻找的,但似乎无法从lodash获得:输入:新的缺点({key1:'value1',key2:{key21:'value21',_key22:未定义},key3:未定义,_key4:未定义})输出:{key1:'value1',key2:{key21:'value21'},key3:未定义例如functionCons(obj){_.extend(this,ob

javascript - 构造函数使用 ES6 速记符号表现不同

ES6引入了一个shorthandnotation使用函数和属性初始化对象。//ES6shorthandnotationconstobj1={a(b){console.log("ES6:obj1");}};//ES5varobj2={a:functiona(b){console.log("ES5:obj2");}};obj2.a();obj1.a();newobj2.a();newobj1.a();但是,如您所见,这些不同的表示法表现不同。如果我在浏览器(经过测试的Chrome和Firefox)中执行newobj1.a(),我会得到一个TypeError:obj1.aisnotacon

javascript - 从 Javascript 构造函数调用成员函数

我遇到了以下真正让我难过的问题:我有functionSystemList(UID){this.refreshData();}SystemList.prototype.refreshData=function(){this.systemDataObj({},$.proxy(this.readSuccess,this));}当我尝试运行它时,出现以下错误:UncaughtTypeError:Object#hasnomethod'refreshData'intheconstructor.有人知道为什么会失败吗?在我看来,它应该可以正常工作。编辑:我如何创建实例的示例:functionUser