草庐IT

Prototype

全部标签

javascript - 在 JavaScript 中扩展数组原型(prototype)

这个问题在这里已经有了答案:JavaScript:WhatdangersareinextendingArray.prototype?(11个答案)关闭8年前。我经常发现自己想要对数组中的所有项执行某些操作,我希望JavaScript具有类似于C#的LINQ的功能。因此,为此,我对Array原型(prototype)进行了一些扩展:vardata=[1,2,3];Array.prototype.sum=function(){vartotal=0;for(vari=0;i如果您需要对数组进行一些数学处理,这会使使用数组变得更加容易。有什么反对使用这样的模式的建议吗?我想我可能应该创建自己的

带有原型(prototype)的 Javascript 函数继承

在DouglasCrockford的JavaScript:TheGoodParts中,他建议我们使用函数继承。这是一个例子:varmammal=function(spec,my){varthat={};my=my||{};//Protectedmy.clearThroat=function(){return"Ahem";};that.getName=function(){returnspec.name;};that.says=function(){returnmy.clearThroat()+''+spec.saying||'';};returnthat;};varcat=functi

javascript - 是否可以在本地服务器环境中暂时禁用 websockets 连接?

我有一个使用websockets(socket.io)的Node.js脚本。该脚本在我的计算机上运行(例如本地服务器环境),我还通过计算机上的浏览器进行测试。我正在尝试优雅地处理断开连接和重新连接。到目前为止,我已经通过禁用/启用iPad上的WiFi来模拟网络干扰。是否可以在我的本地计算机上禁用和恢复浏览器的网络套接字连接,即通过浏览器插件、第三方代理软件或其他工具?我已经试过了:Chrome开发者工具:在其设备模式中有一个网络条件option,这让我可以模拟各种网络连接。遗憾atthispointintime它仅适用于HTTP连接,不适用于websocket连接。Charles:它记

javascript - Object.create(null) 的用例

我知道使用Object.create(null)创建一个没有proto属性的对象(即Object.getPrototypeOf(myObj)===null)但有人可以帮助我了解这方面的一些用例吗?换句话说,为什么要创建一个完全空的对象(即不从Object.prototype继承任何方法)? 最佳答案 在极少数情况下,可能已将某些内容添加到Object.prototypeObject.prototype.bar='bar';最好用Object.create(null)创建一个Object因为它不会继承这个,考虑一下({}).bar;/

javascript - 这些原型(prototype)声明中哪个更好,为什么?

这个问题在这里已经有了答案:Whatisthedifferencebetweentheseprototypedeclaration?[duplicate](3个答案)关闭8年前。我正在尝试决定如何在我的主库原型(prototype)中设置我的函数。我应该使用:Library.prototype.funcA=function(){.....};Library.prototype.fucnB=function(){.....};etc..或Library.prototype={funcA:function(){.....},funcB:function(){.....},etc..};所以

javascript - Crockford 的原型(prototype)继承 - 嵌套对象的问题

我一直在阅读道格拉斯·克罗克福德(DouglasCrockford)的“Javascript:好的部分”——虽然这本书有点极端,但我同意他所说的很多内容。在第3章中,他讨论了对象,并在某一点提出了一种模式(也是foundhere),用于简化和避免使用内置“new”关键字带来的一些混淆/问题。if(typeofObject.create!=='function'){Object.create=function(o){functionF(){}F.prototype=o;returnnewF();};}newObject=Object.create(oldObject);所以我尝试在我正在

javascript - Function.prototype.toMethod() 是做什么的?

我注意到Function.prototype在实验性JavaScript中有一个toMethod()方法,但它实际上做了什么?我该如何使用它? 最佳答案 更新:toMethod方法只是实验性的,没有成为标准。home对象现在基本上是静态的,操作super的唯一方法是更改​​[[prototype]]:varbase={…};//asbelowvarobj=Object.setPrototypeOf({foo(){//needstousemethoddefinitionsyntaxsuper.foo();}},base);obj.fo

javascript - Function.prototype.bind() 总是很慢吗?

我正在编写一个开源javascript库,并且大量使用.bind()方法,因为我认为面向对象的代码看起来更清晰。(尽管有争议)示例A1:varthat=this;setTimeout(function(){that.method();},0);对比B1:setTimeout(this.method.bind(this),0);或者,更实用的代码部分A2:remoteDataSource.getData(function(a,b,c,d){obj.dataGetter(a,b,c,d);})对比B2:remoteDataSource.getData(obj/*orprototype*/.

JavaScript 克隆对象丢失其原型(prototype)函数

我正在尝试用JavaScript克隆一个对象。我制作了自己的具有原型(prototype)函数的“类”。我的问题:当我克隆一个对象时,克隆对象无法访问/调用任何原型(prototype)函数。访问克隆的原型(prototype)函数时出错:clone.renderisnotafunction你能告诉我如何克隆一个对象并保留其原型(prototype)功能吗这个简单的JSFiddle演示了我得到的错误:http://jsfiddle.net/VHEFb/1/functioncloneObject(obj){//Handlethe3simpletypes,andnullorundefine

JavaScript 面向对象 : method definition with or without "prototype"

是这段代码吗,functionPerson(){functionmyMethod(){alert('hello');}this.method=myMethod;}相当于:functionPerson(){}Person.prototype.method2=function(){alert('hello');};如果是,我应该使用哪个方法定义,为什么? 最佳答案 在您的简单示例中,它们在功能上是等效的,但在幕后的工作方式却大不相同。函数的prototype属性实际上是“原型(prototype)模板”。它说“每当创建一个对象并且我被用