草庐IT

prototype-programming

全部标签

javascript - 如何在 JavaScript 中创建 protected 对象属性

是否有一种JavaScript模式可以模仿“protected”对象属性,就像您在C++等语言中看到的那样??基本上,我想创建一个对象A,它有许多“protected”的对象属性,这些属性只能从对象A的原型(prototype)定义的方法访问。即-不能从非原型(prototype)公开访问A的方法。例如,理想情况下应该是这样的:functionA(){varprop1=1;}A.prototype.myFunc=function(){varnewVar=this.prop1;//newVarnowisequivalentto1}varinstanceOfA=newA();varnewV

javascript - 原型(prototype)——按元素类名的点击事件

我是原型(prototype)框架的新手,正在尝试一些非常简单但失败的事情。我正在尝试响应按钮上的点击事件,如下所示:$$('.btn').observe('click',respond);functionrespond(event){alert("hello");}为什么这不起作用?请帮忙! 最佳答案 与jQuery不同,在Prototype中处理具有多个结果的选择器的工作方式略有不同。您需要使用.each()分别处理每个选定的结果。$$('.btn').each(function(element){element.observe

javascript - 一个 JavaScript 对象使用构造函数找到它的原型(prototype)?

在书中SecretsoftheJavaScriptNinja,2013,第125页,它说:EachobjectinJavaScripthasanimplicitpropertynamedconstructorthatreferencestheconstructorthatwasusedtocreatetheobject.Andbecausetheprototypeisapropertyoftheconstructor,eachobjecthasawaytofinditsprototype.这实际上可能是我听说过的关于JavaScript的最有缺陷的事情之一,而且它来自一位据称是Java

javascript - 在哪里可以找到使用 Crockford 方法进行原型(prototype)继承的大型 JavaScript 项目的示例?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion我已经阅读了有关Crockford插入usingJavaScriptinamoreobviouslyprototypalmanner的信息(克隆对象以创建新对象,从不使用“new”关键字)。但在野外,我从未见过有人将这种风格用于更大的项目。在哪里可以找到使用这种风格的大型项目的示例?

javascript - 将构造函数传递给 Array.map?

我怎样才能做这样的事情:vara=[1,2,3,4];a.map(Date.constructor);此代码在GoogleV8上抛出错误:SyntaxError:Unexpectednumber我也试过:a.map(Date.constructor,Date.prototype)同样的结果。 最佳答案 我认为OP正在寻找的内容与此非常相似:varnums=[1,2,3];varstrs=nums.map(String);//=>['1','2','3'];//arrayofstrings我认为原因是这真的很优雅,无论是在像上面这样的

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 - 这些原型(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