草庐IT

Inheritance

全部标签

javascript - 令人困惑的 JavaScript 语句 : "var x = new this();"

我以为我理解了JavaScript原型(prototype)对象的概念,以及[[proto]],直到我看到一些关于类继承的帖子。首先,“JavaScriptOOP-聪明的方式”在http://amix.dk/blog/viewEntry/19038查看实现部分:varparent=newthis('no_init');还有JohnResig的精彩博客上的“简单JavaScript继承”。varprototype=newthis();newthis();到底是什么意思?这个声明对我来说毫无意义,因为我的理解是this指向一个对象而不是构造函数。我还尝试在Firebug中测试语句来解决这个

javascript - 我可以在 Javascript 中将 "extend"定义为闭包定义的 "class"吗?

我有一个这样定义的Javascript“类”:varWelcomer=function(name){varpName=name;varpMessage=function(){return"Hi,"+pName+"!";};return{sayHi:function(){alert(pMessage());}};};newWelcomer('Sue').sayHi();有没有一种方法可以“子类化”Welcomer,以便我可以重新定义公共(public)方法并访问私有(private)方法和变量?以下将使我能够访问公共(public)方法,但不能访问私有(private)方法:varUnh

javascript - Vue.js继承调用父方法

是否可以在Vue.js中使用方法覆盖?varSomeClassA=Vue.extend({methods:{someFunction:function(){//ClassAsomestuff}}});varSomeClassB=SomeClassA.extend({methods:{someFunction:function(){//CALLSomeClassA.someFunction}}});我想从ClassBsomeFunction调用ClassAsomeFunction。有可能吗? 最佳答案 不,vue不适用于直接继承模型。

JavaScript 继承 Object.create()?

如何使用Object.create()进行继承?我尝试了这些,但都没有用:varB=function(){};varA=function(){};A=Object.create(B);A.prototype.C=function(){};和varB=function(){};varA=function(){};A.prototype.C=function(){};A=Object.create(B);和varB=function(){};A=Object.create(B);varA=function(){};A.prototype.C=function(){};没有任何效果。我应该如

javascript - 流行的 JavaScript 继承模式

我正在研究ebookonGitHub在TDDJavaScript上,我想知道我是否遗漏了任何流行的继承模式。如果您知道任何其他模式,我很乐意看到它们。他们应该具有以下内容:耗时考验-在真实应用中使用应提供源代码。应尽可能直截了当和迂腐。当然要正确且有效。我这样做的原因是,JavaScript中的对象继承似乎对我们许多人来说都很难理解。我的JavaScript继承章节基本上是一个学习辅助工具:Crockford的GoodParts和Zakas的WebDevelopersProfessionalJavaScript。这是我到目前为止的模式://PseudoclassicalInherita

javascript - 在 "constructor"中设置 "prototype"属性的优点

在JavaScriptPrototype继承中,添加prototype.constructor属性的目的是什么。让我用一个例子来解释。varSuper=function(){this.superProperty='SuperProperty'}varSub=function(){this.subProperty='SubProperty'}Sub.prototype=newSuper();Sub.prototype.constructor=Sub;//advantagesofthestatementvarinst=newSub();无论是否添加Sub.prototype.constru

javascript - 从卡住的父对象创建新对象

此示例创建一个对象,将其卡住,然后从卡住的对象创建一个新对象。如果第二个对象试图更改测试属性,则它不能。它仍然卡住第一个对象的值为10。//Createanobjectandfreezeitvarfirst={test:10};Object.freeze(first);//Createasecondobjectfromthefirstoneand//tryandchangethenewtestproperty(youcan't)varsecond=Object.create(first);second.test=20;console.log(second.test);//10这是我的问

javascript原型(prototype)继承

这看起来不一致,但可能是因为我对javascript的原型(prototype)继承功能不熟悉。基本上,我有两个基类属性,“list”和“name”。我实例化两个子类并为属性赋值。当我实例化第二个子类时,它从第一个子类实例中获取列表值,但仅限于“列表”而不是“名称”。这是怎么回事??当然,我更希望任何后续的子类实例都不会从其他实例中获取值,但如果发生这种情况,它应该是一致的!这是一个代码片段:functionA(){this.list=[];this.name="A";}functionB(){}B.prototype=newA();varobj1=newB();obj1.list.p

javascript - 我可以在不使用 new 关键字的情况下构造 JavaScript 对象吗?

这是我想做的:functiona(){//...}functionb(){//Somemagic,returnanewobject.}varc=b();cinstanceofb//->truecinstanceofa//->truebinstanceofa//->true这可能吗?我可以通过将aHook到其原型(prototype)链中,轻松地使b成为a的实例,但随后我必须执行newb(),这是我要避免的。我想要的可能吗?更新:我觉得明智地使用b.__proto__=a.prototype可能是可行的。下类后我会尝试更多。更新2:下面是您能得到的最接近的,这对我来说已经足够了。感谢大家

javascript - 将继承与模块模式相结合

我喜欢返回构造函数的模块模式,如下所述:http://elegantcode.com/2011/02/15/basic-javascript-part-10-the-module-pattern/但是我不确定如何从使用此模式实现的对象继承。假设我有一个这样实现的父对象......namespace('MINE');MINE.parent=(function(){//privatefuncsandvarshere//PublicAPI-constructorvarParent=function(coords){//...doconstructorstuffhere};//PublicAP