prototypal-inheritance相关内容
我喜欢在javascript中,我可以创建一个函数,然后为该函数添加更多方法和属性 myInstance = function(){return 5} myInstance.attr = 10 我想要创建一个类来生成这些对象。我假设我必须从Function基类继承。 换句话说,我想: var myInstance = new myFunctionC
..
此示例创建一个对象,冻结它,然后从冻结对象创建一个新对象。 如果第二个对象试图更改测试属性,则不能。它仍然被 第一个对象的值10冻结。 //创建一个对象并冻结它 var first = { test:10 }; Object.freeze(第一个); //从第一个创建第二个对象并且 //尝试并更改新的测试属性(你不能) var second = Objec
..
我正在寻找一种简单的方法来创建两个类,一个继承自另一个类,子项重新定义父方法之一,并在新方法中调用父类。 例如,有一个类 Animal 和 Dog ,其中Animal类定义了一个方法 makeSound()确定如何输出声音,Dog然后在其自己的 makeSound()方法中覆盖一个“低音”的声音,但同时也调用Animal的 makeSound()来输出那个低音。 我看了John Res
..
我是一名Ruby开发人员,他最终决定认真学习JavaScript。所以我购买了一些书籍,我开始潜入,但当我试图理解原型继承时,我很快陷入困境...... 本书的一个例子是下列。 给定一个Shape,其原型有一个draw方法,以及两个子形状:一个Triangle和一个Rectangle,它继承自Shape; 当我在Triangle和Rectangle实例上调用draw函数时,该方法将正
..
我有这样的实体结构: 产品1 - > N ProductCustomField 1 1 | | M M' 第1版 - > N'ReleaseCustomField ProductCustomField 原型“ - Release的字段列表。 我想选择一个 Release 对象所有 ReleaseCustomFields 其中 ProductCu
..
在extj中,您可以随时通过构造函数()来扩展一个extjs类。对于从组件中衍生的类,您还可以通过 initComponent()扩展。 我想知道为什么这么多代码通过 initComponent 扩展,而构造函数似乎是通用扩展方法。 initComponent 比构造函数提供明确的优势? 解决方案 首先,通过构造函数重写的能力被添加到更高版本的Ext中,而不是 initCompone
..
现在,我知道你不能像C#那样执行继承,我已经看到它在互联网上提到它是有可能的。如果不可能使用纯粹的JavaScript代码,那么是否可以使用 Ext JS JS ,如果是这样? 解决方案 面向JavaScript的范例是基于原型。没有“类”,只是对象。 您可以以不同的方式实现继承。两个更受欢迎的替代品是“伪古典”和“原型”形式。例如: 伪经典继承 我认为这是最受欢迎的方式
..
我正在使用Connect / Express.js构建一个Node.js应用程序,我想拦截res.render(view,option)函数来运行一些代码,然后将其转发到原始的render函数。 app.get('/ someUrl',function(req,res){ res.render = function (view,options,callback){ view ='t
..
我有一种情况,我需要检查一个构造函数(X)在其原型链中是否有另一个构造函数(Y)。或者,它是Y本身。 最快的方式可能是(new X())instanceof Y 。在这种情况下,这不是一个选项,因为如果没有有效的参数,如果实例化的构造函数可能会抛出。 我认为的下一个方法是这样的: const doesInherit =(A,B)=> { while(A){ if(A ===
..
我正在使用这种克隆方法,从 Pro JavaScript设计模式中进行原型继承与 Crockford的object()函数基本相同。 (唯一的区别是Crockford添加了调用括号,但是由于F是空的,我不知道它是否重要,我不认为这个问题。) clone = function(object){ function F(){} F.prototype = object; 返回新的F;
..
我有以下JavaScript代码 function Parent(){ } function Child(){ } Child.prototype = Object.create(Parent.prototype); 注意不存在语句 Child.prototype.constructor = Child; 我的理解是,由于构造函
..
function F(){$ b $ b return function(){ return {}; } } var f = new F(); f instanceof F; //返回false 据我所知,如果我想要 instanceof 工作,我需要从构造函数中返回 this 。但我想让构造函数返回一个函数,我不能分配 this 。 不可能或可
..
我正在阅读javascript花园 http://bonsaiden.github.com/JavaScript-Garden/ 关于原型在javascript中,其示例之一是这样的: function Foo(){ this.value = 42; } Foo.prototype = { method:function(){} }; function Bar(){}
..
“JavaScript是世界上最误解的语言”-D.Crockford 我的问题: 简单的英语中的构造函数和原型? 使用原型?使用 原型和构造函数后面的目的是什么?我的意思是他们提供更多的 的灵活性。我问这个问题,因为我在过去六个月中一直在使用这种语言 ,从来没有使用过原型和 构造函数的情况。 我不是在寻找任何语法,以及如何去做事情的解释,因为我明白他们的一部分,只是想以
..
我写了一个类试图用自定义类扩展本地的Javascript 数组类,让我们称之为 MyClass 。这基本上是它的样子: class MyClass extends Array constructor:(obj) > @ push.apply @,obj first: - > @slice 0,1 实例化类没有问题。在控制台中执行此操作: var
..
如果一个变量在需要时在函数中不可用,那么它在范围链中(这是一个闭包)被查找,但有时候它在原型链中被搜索。我试图包裹我的头发生在什么时候发生。我想知道是否有人能为我清除雾气,或者让我参考一些文献,特别讨论这个话题。 例如,我说的是正确的: - 对象,因此绑定到上下文的公共变量(this)总是在原型链中查找? - 私有变量总是在范围链中查找(即执行上下文中的函数链)? - 是否有任何情况下,
..
我一直在重新考虑别人的JavaScript代码。 之前: function SomeObj(flag){ var _private = true; this.flag =(flag)?真假; this.version =“1.1(prototype)”; if(!this._someProperty)this._init(); //引入下划线提示应该是一个'私人'给
..
我在C ++库周围编写Node.js绑定。我可以将C ++库中的关键对象标识为Node.js(即ObjectWrap的派生类)。我也可以看到这些对象之间的继承关系。 如何公开 ClassA , ClassB code>作为node.js类( ObjectWrap 的派生物)并操作其原型(在v8 C ++代码中),使 c $ c> ClassB 和 ClassC 是 ClassA ? 解
..
我使用的是改编自一个骨干扩展功能(相同的除了一些改变以符合我的雇主的命名约定)来实现原型继承。建立结构如下(下大大简化)后,我得到一个无限循环。 走势=功能(){}; Graph.extend = myExtendFunction; Graph.prototype = { generateScale:功能(){ //做东西 } } //基类别处定义 UsageGrap
..
我有一个类,定义了一些默认值,并定义了一些默认的子类。但是,当我创建了子类的实例只着眼于当地的默认设置,不与母公司合并其默认值。有没有简单的方法来做到这一点没有在每个子类中的初始化函数父默认明确合并当地的默认值? VAR库存= Backbone.Model.extend({ 默认值:{ 猫:3, 狗:5 } });VAR ExtendedInve
..