草庐IT

Prototype

全部标签

javascript - 继承方式不同

这个问题在这里已经有了答案:Benefitsofusing`Object.create`forinheritance(4个答案)关闭4年前。我看到很多情况下js中的继承可以这样实现functionOrganism(age){this.age=age;}Organism.prototype.growOlder=function(){this.age=this.age+1}varorg=newOrganism("1000");functionHuman(name,age){Organism.call(this,age);//thissetsupthepropertiesonthehuman

Javascript 在原型(prototype)中设置具有值类型的对象属性?

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter为指导。8年前关闭。我总是在对象的原型(prototype)中设置具有值类型的属性,因为这阻止了每次创建对象时都必须初始化它们。从那时起,我进行了一些调试,发现如果原型(prototype)属性的值会发生变化,则会为对象分配一个新属性,而原型(prototype)则保持不变。varo=function(){};o.prototype.x=0;o.prototype.setX=f

javascript - Array.prototype.map() 和 Array.prototype.forEach()

我有一个数组(下面的示例数组)-a=[{"name":"age","value":31},{"name":"height(inches)","value":62},{"name":"location","value":"Boston,MA"},{"name":"gender","value":"male"}];我想遍历这个对象数组并生成一个新对象(不是特别减少)。我有这两种方法-a=[{"name":"age","value":31},{"name":"height(inches)","value":62},{"name":"location","value":"Boston,MA"}

javascript - Object.__proto__ 中有什么?

在GoogleChrom的javascript中,对象有一个名为__proto__的属性,它指向它们的原型(prototype)(或父)对象。varfoo={};console.log(foo.__proto__===Object.prototype);//returnstrue但是,对于Object对象,这是不正确的。console.log(Object.__proto__===Object.prototype);//returnsfalseObject.__proto__属性似乎是一个空方法>console.log(Object.__proto__.toString());func

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 - Array.prototype.filter(Number) 中的 'Number' 是如何工作的?

我发现使用Array.prototype.filter方法从字符串中删除所有非数字的方式很酷,但我不完全确定它是如何使用Number实现这个的原型(prototype):vararr='75number9';arr.split(/[^\d]/).filter(Number);//returns[75,9]当我检查typeofNumber时,我返回'function'。这是怎么回事?让我更加困惑的是,如果我用String替换Number,结果是一样的。它仍然有效!arr.split(/[^\d]/).filter(String);//returns[75,9]Array和Object作为

javascript - 向现有 Javascript 对象添加方法的最佳方式

我收到了一个ajax文档提要,看起来像这样(大大简化):aDocs=[{title:'newdoc',ext:'pdf'},{title:'another',ext:'xlsx'}];我将遍历aDocs数组并显示有关每个文档的信息,同时向每个文档添加一些方法,这些方法将允许修改用于显示的HTML并进行API调用以更新数据库。我读了here为了向现有对象添加方法,您可以使用__proto__属性。类似的东西:functionDoc(){}Doc.prototype.getExt=function(){returnthis.ext}Doc.prototype.getTitle=functi

javascript - 脚本 1010 : Expected identifier in IE10

在我的项目中,我使用PrototypeJavaScriptFramework1.7.1当我在Windows7的IE10中加载网页时,出现以下错误消息:SCRIPT1010:预期标识符第1行第9个字符指向在我下面的测试HTML页面中:MywebpagetitlejusttestingHTTP请求头GET/test.htmlHTTP/1.1[CRLF]Host:www.mydomain.com[CRLF]Connection:close[CRLF]User-Agent:Web-sniffer/1.0.44(+http://web-sniffer.net/)[CRLF]Accept-Enco

javascript - 为什么 boolean 原语不调用原型(prototype) toString()?

假设我有这段代码:Boolean.prototype.toString=functiontoString(){returnthis.valueOf()?'1':'0';};varobject={true:'true',false:'false',1:'1',0:'0'};//"true"-thisdoesn'tworkconsole.log('primitive',object[true]);//"1"-butthesedoconsole.log('primitive.toString()',object[true.toString()]);console.log('instance'

javascript - 如何 "override"原型(prototype)上定义的(get-)属性?

我有一些代码在原型(prototype)上定义了一个getter(但没有setter,如果相关的话)。返回的值在99.99%的情况下是正确的;但是,目标是将属性设置为针对特定对象评估为不同的值。foo={}Object.defineProperty(foo,"bar",{//onlyreturnsodddiesidesget:function(){return(Math.random()*6)|1;}});x=Object.create(foo);x.bar//=>eg.5x.bar=4//byfairdicerollx.bar//nope=>eg.3如何为现有对象x覆盖该属性,使其可