prototype-programming
全部标签 我不是很喜欢动态编程语言,但我已经编写了相当多的JavaScript代码。我从来没有真正理解这种基于原型(prototype)的编程,有人知道它是如何工作的吗?varobj=newObject();obj.prototype.test=function(){alert('Hello?');};varobj2=newobj();obj2.test();我记得前段时间我与人们进行了很多讨论(我不太确定我在做什么),但据我了解,没有类的概念。它只是一个对象,这些对象的实例是原始对象的克隆,对吧?但是JavaScript中这个“.prototype”属性的确切用途是什么?它与实例化对象有何关系
获取一个对象的原型(prototype)很容易,但是有没有办法获取所有具有特定原型(prototype)的实例呢?像这样:varallAnimals=Animal.prototype.getInstances();可以编写自定义代码来跟踪实例化对象,但我对是否有任何内置方法感兴趣。 最佳答案 你可以试试这样的东西functionA(f){this.field=f;A.instances.push(this);}A.instances=[];所以之后varone=newA(10),two=newA('123');在A.instance
经过多次试验,我发现__proto__或Object.getPrototypeOf()方法是遍历DOM对象中原型(prototype)链的正确方法。使用一系列constructor.prototype实际上并没有在两个浏览器中遍历原型(prototype)链。(虽然这是ECMA标准中定义的方式,constructor的prototype属性是你的原型(prototype)对象)。欢迎任何建议或评论...p1=document.getElementById("test");//divelement//PrototypeObjectofp1p2=element.constructor.pr
我正在尝试编写一个库来拦截所有XMLHttpRequest调用并在最终发送请求之前做一些事情,方法是覆盖其原型(prototype),例如:varoriginal_open=XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open=function(){//myownoverridelogicherebeforerunningtheoriginalfunctionoriginal_open.apply(this,arguments);};问题是,我想保证当有人使用这个库时,网页上的任何其他代码都不可能重新覆盖这个效果。因为否
我目前正在做一个项目,该项目是一个使用Prototype库的大型站点,并且已经有大量的Javascript代码。我们现在正在研究一段代码,它将被“注入(inject)”到其他人的网站中(想象人们在他们的网站中添加标签),然后运行我们的代码并添加一堆DOM元素和他们网站的功能。这将有新的代码片段,并且还将重用我们在主站点上使用的大量代码。我遇到的问题是,仅仅添加一个将在人们的页面中包含Prototype的当然不是很酷。如果我们在已经使用任何框架的页面中这样做,我们肯定会搞砸一切。jQuery为我们提供了“重命名”$对象的选项,因此它可以很好地处理这种情况,但显然我们没有使用jQuery,
我是JavaScript编程的新手,我对继承有点噩梦。我正在为AppceleratorTitanium编写一些代码,我有一个名为Slide2D的基类,我希望从中继承它。所以我在Slide2D的原型(prototype)中放置了一些函数。这些通常不会被覆盖,但会从Slide2D派生的类中调用。这些函数也将从程序的其他部分调用。还有各种事件处理程序用于管理Titanium中的动画。如果我在一些调用代码中制作了几个这样的幻灯片(使用new)vars=newSlide2D('slide1','background1.png',etc......vart=newSlide2D('slide2',
基于类的继承展示了它在创建大型编程系统(尤其是GUI系统)中的有用性。如何在现实生活中应用基于原型(prototype)的继承?我们应该如何构建系统而不是创建类层次结构?对于基于类的OOP,是否存在任何基于真正原型(prototype)的OOP的编程模式? 最佳答案 nahab:ArehereexistanyprogrammingpatternsforrealprototypicalbasedOOPasexistsforclass-basedOOP?这question应该会指导您找到一些关于实用Javascript设计模式的好资源。
是否有一致且通用的方法将原型(prototype)代码转换为jQuery?我不是在问如何转换特定代码,例如:来自:Event.observe(window,'load',function(){/*code*/});收件人:$(function(e){/*code*/});但是如何将任何代码从原型(prototype)转换为jQuery。我不确定这是否可行,但欢迎提出任何建议。谢谢更新:我一直here但这是4岁..你知道,在1990年,像(如何在不重新加载页面的情况下从服务器加载数据)这样的问题会有一个明显的答案:你不能 最佳答案 我
我已经使用Function.prototype.func=...添加了一个函数到Function但在Firefox中它没有被添加console.log:Function.prototype.func=function(){returnthis.toString();};alert(typeofconsole.log.func);//inFF:undefined,inChrome:function这是错误还是有任何原因? 最佳答案 在Firefox中很明显:varfoo=function(){}foo.__proto__==Funct
在创建JS对象,定义一些accessor时,发现this.后无法获取intellisense示例代码:functionObj(foo){this.foo=foo;}Obj.prototype={getbar(){returnthis.//Nointellisensehere},setbar(val){this.foo=val}};但是使用Obj.prototype.test=function(){...}创建方法会让我获得智能感知。是否有任何方法可以使用用户设置为这种情况复制相同的词法分析,或者这是一个实际的缺陷/错误?编辑:这是VSCode显示的图像:如您所见,它只显示以前使用过的单