草庐IT

Prototype

全部标签

javascript - 如何继承DOM元素类

我想编写一些扩展DOM节点的Javascript类(这样我就可以将我的类的实例直接插入到DOM中),但是很难找到我应该从哪个类/原型(prototype)继承。例如:functionmyExtendedElement(){this.superclass=ClassA;this.superclass();deletethis.superclass;}但是ClassA应该是什么? 最佳答案 这样做不是一个好主意。首先,要从DOM元素继承,您需要有权访问该元素的原型(prototype)。问题是并非所有浏览器都提供对DOM元素原型(pro

Javascript OOP/类 - 多个实例共享相同的数据

我正在编写一些oopjavascript代码。我有一个类的几个实例,并将不同的数据放入每个实例中。不幸的是,正如您将在下面的示例中看到的那样,它们似乎共享相同的数据。是否可以获取我的类的两个独立实例?将如何完成。索引.htmldebugger;//DothisbecauseapageresartseemstokeepolddatafunctionSetGlobals(){varui;varel;//Arr00ui=document.getElementById("Arr00");el=arr0.arrayGet(0);ui.innerHTML=el.m_String;//Arr01ui

javascript - String.prototype.replace() 删除破折号和下划线

我正在尝试使用String.prototype.replace()删除字符串中出现的所有破折号和下划线,但它不起作用,我也不知道为什么。我的代码:varstr="dash-and_underscore";str=str.replace(/_|\-/,"");console.log(str);输出:"dashand_underscore"在Chrome控制台中。由于|的行为类似于OR运算符,我做错了什么?我试过解决方案here,但它没有用,或者我太笨了,无法理解-这是一个选项;) 最佳答案 试试这个:str=str.replace(/

javascript - Array.prototype.reject() : TypeError: . ...reject 不是函数

我正在学习一门关于JavaScript函数式编程的很棒的在线类(class)。在讲师使用Array.prototype.reject()并且它在运行时对我不起作用之前,我一直很好。我想使用“reject”而不是for循环,因为它的代码更少。但是,我的浏览器、NodeJS和ExpressCode控制台告诉我reject不是函数。我研究了其他讨论promise.reject不是函数的文章,但提供了对我的场景没有意义的解决方案。这是类(class)中的示例代码:varanimals=[{name:'Fluffykins',species:'rabbit'},{name:'Caro',spec

javascript - 对象不继承原型(prototype)函数

我有一个构造函数,它充当父类(superclass):Bla=function(a){this.a=a;}我对其进行原型(prototype)设计以包含一个简单的方法:Bla.prototype.f=function(){console.log("f");现在新的Bla(1).f();将在控制台中记录“f”。但是,假设我需要一个继承自Bla的子类:Bla2=function(a){this.base=Bla;this.base();}x=newBla2(5);现在,正如预期的那样,x.a给了我5。但是,x.f是undefined!似乎Bla2没有从Bla类继承它!为什么会发生这种情况,

javascript - 上传中的 "Error calling method on NPObject!"

我正在使用Uploadify在我的CMS中上传文件。一切正常,直到最近。我得到一个错误在NPObject上调用方法时出错在这条线上document.getElementById(jQuery(this).attr('id')+'Uploader').startFileUpload(ID,checkComplete);关于这部分uploadifyUpload:function(ID,checkComplete){jQuery(this).each(function(){if(!checkComplete)checkComplete=false;document.getElementByI

javascript - 这是做私有(private)功能的好方法吗?

刚刚在CoffeeScript中打错字时看到了一些有趣的代码。我得到以下代码varMamal,mam;Mamal=(function(){var__priv_func;functionMamal(){}Mamal.prototype.simple_var=5;Mamal.prototype.test=function(){return__priv_func(this);};__priv_func=function(instance){returnalert(instance.simple_var);};returnMamal;})();mam=newMamal();mam.simple

JavaScript:扩展元素原型(prototype)

我看到很多关于扩展Element的讨论。据我所知,这些是主要问题:可能会和其他库冲突,它将未记录的功能添加到DOM例程中,它不适用于旧版IE,并且它可能会与future的变化发生冲突。给定一个没有引用其他库的项目,文档更改,并且不在乎历史浏览器:是否有任何技术理由不扩展Element原型(prototype)。这是一个有用的示例:Element.prototype.toggleAttribute=function(attribute,value){if(value===undefined)value=true;if(this.hasAttribute(attribute))this.r

javascript - 与 'prototype'(Firefox 扩展)混淆

我正在开发一个firefox扩展,我想我现在遇到了一个关于Javascript的基本误解,准确地说是“原型(prototype)”概念。考虑以下最小示例,注意设置变量this.demo和this.test时的差异:varExample=newArray();Example.Foo=function(){this.test=null;this.demo="World";};Example.Foo.prototype={initialize:function(resource){this.test="Hello";this.display();},display:function(){al

javascript - 为什么使用 'prototype' 进行 javascript 继承?

JavaScript对象具有“原型(prototype)”成员以促进继承。但似乎,即使没有它,我们也可以过得很好,我想知道使用它有什么好处。我想知道有什么优点和缺点。例如,考虑以下内容(此处为jsfiddle):functionBase(name){this.name=name;this.modules=[];returnthis;}Base.prototype={initModule:function(){//initonallthemodules.for(vari=0;i问题是,为什么要使用“原型(prototype)”?我们也可以做一些像Derived=Object.create