草庐IT

prototype-programming

全部标签

javascript - 为什么有些方法有 .prototype 而有些没有?

关于prototype的问题:为什么有些Array方法有.prototype而其他人则没有?documentation声明“Array.prototype表示Array构造函数的原型(prototype)”。我试图将此声明与以下理解相协调prototype是引用父类型的属性,因为这是实现继承的方式。如果后者为真,那么Array的父类型是什么?谁“拥有”像map()这样的方法和indexOf()?我的主要问题是第一行的问题。 最佳答案 Iamtryingtoreconcilethisstatementwiththeunderstand

javascript - 在 Javascript 中扩展原型(prototype) - 好方法?

我想验证在扩展原型(prototype)时我使用的方法是否正确-假设“扩展”是正确的词。这个主题得到了很多克隆。我仍在努力正确理解这个主题...目的是:-编写干净和良好的代码。-避免使用框架,如果可能的话,使用纯Javascript。-获得有关不扭曲JS以获得启用类的行为的干净框架的建议。这是我的沙箱的父级原型(prototype):functionParent(){}Parent.prototype={"init":function(){this.name="anon";},"initWithParameters":function(parameters){this.name=par

JavaScript:构造函数与原型(prototype)

之前已经回答过这个问题,但我想确认一下我的理解。在这段代码中:varsomePrototype={speak:function(){console.log("Iwasmadewithaprototype");}}functionsomeConstructor(){this.speak=function(){console.log("Iwasmadewithaconstructor");}}varobj1=Object.create(somePrototype);varobj2=newsomeConstructor();obj1.speak();obj2.speak();他们基本上都在做

javascript - 真的没有办法在 IE (<8) 中暴露 html 元素的原型(prototype)吗?

我设计了一个模式来使用原型(prototype)创建和扩展html元素。这在非ie浏览器中就像一个魅力。可以在@jsbin找到示例代码(查看页面源代码)这种模式的优点应该是速度快(方法在元素原型(prototype)链中,所以只引用一次)。你猜对了:IE不行。在IE真的无法在IE中访问HTML元素原型(prototype)吗? 最佳答案 不,也不能保证您通常可以在JavaScript中摆弄DOM对象的原型(prototype)。DOM对象不是ECMAScript规范的一部分;在任何浏览器中,它们可能根本不是(传统上来说不是)原生Ja

javascript - 有人可以解释javascript原型(prototype)继承吗

我想知道是否有人可以解释一下function.prototype面向对象javascript中的事物(事物!!??)。我有服务器端编程背景,可能我没有掌握原型(prototype)的全部概念,给定以下代码片段:varanimate=function(){};animate.angular=function(){/*doessomethinghere*/};animate.circular=function(){/*doessomethinghere*/};和varanimate=function(){};animate.prototype.angular=function(){/*do

Javascript无限原型(prototype)链

我正在使用以下测试代码:functionTest(){}Test.prototype.MyMethod={a:function(){},b:function(){}}为了运行它,我只是在做:vartest=newTest();console.debug(test);在firebug控制台中,我展开打印的对象并查看__proto__的内部:在那里找到一个看似永无止境的构造函数链->原型(prototype):+MyMethod-constructor-prototype+MyMethod-constructor-prototype+MyMethod-constructor等等。我在这里做

javascript - 为什么在原型(prototype)中定义属性被认为是一种反模式

我经常看到这种模式来定义javascript对象functionPerson(name){this.name=name;}Person.prototype.describe=function(){return"Personcalled"+this.name;};并且在thisarticle它说直接向原型(prototype)对象添加属性被认为是一种反模式。来自“基于经典类”的语言,必须定义方法之外的属性听起来不太正确,而且在javascript中,方法应该只是一个具有函数值的属性(我在这里吗?)我想知道是否有人可以解释这一点,或者甚至建议一种更好的方法来处理这些情况

javascript - 带有 Object.create 和命名构造函数的原型(prototype) OO

我是从Python和Smalltalk的背景转到Javascript的,我很欣赏这门语言中Self和Lisp的传承。使用ECMAScript5,我想在没有new运算符的情况下尝试原型(prototype)OO。约束:创建类的可选new运算符instanceof的原型(prototype)链必须是正确的用于WebInspector调试支持的命名构造函数alloc().init()创建序列,类似于Objective-C和Python这是我为满足标准而进行的尝试:functionsubclass(Class,Base){"usestrict";functioncreate(self,args

使用 "this = "的 Javascript 函数给出 "Invalid left-hand side in assignment"

我试图让一个JavaScript对象使用另一个对象的构造函数的“this”赋值,并假定所有对象的原型(prototype)函数。这是我试图完成的示例:/*Thebase-containsassignmentsto'this',andprototypefunctions*/functionObjX(a,b){this.$a=a;this.$b=b;}ObjX.prototype.getB(){returnthis.$b;}functionObjY(a,b,c){//here'swhatI'mthinkingshouldwork:this=ObjX(a,b*12);/*andby'work

javascript - 如何用自定义函数替换javascript原型(prototype)

//IamtryingtomakeacloneofString'sreplacefunction//andthenre-definethereplacefunction(withamindto//calltheoriginalfromthenewonewithsomemods)String.prototype.replaceOriginal=String.prototype.replaceString.prototype.replace={}下一行现已损坏-我该如何修复?"loremipsum".replaceOriginal(/(orem|um)/g,'')