prototypal-inheritance相关内容

从冻结的父对象创建新对象

此示例创建一个对象,冻结它,然后从冻结对象创建一个新对象。 如果第二个对象试图更改测试属性,则不能。它仍然被 第一个对象的值10冻结。 //创建一个对象并冻结它 var first = { test:10 }; Object.freeze(第一个); //从第一个创建第二个对象并且 //尝试并更改新的测试属性(你不能) var second = Objec ..
发布时间:2018-08-03 14:40:05 前端开发

John Resig的Javascript继承代码段是否已被弃用?

我正在寻找一种简单的方法来创建两个类,一个继承自另一个类,子项重新定义父方法之一,并在新方法中调用父类。 例如,有一个类 Animal 和 Dog ,其中Animal类定义了一个方法 makeSound()确定如何输出声音,Dog然后在其自己的 makeSound()方法中覆盖一个“低音”的声音,但同时也调用Animal的 makeSound()来输出那个低音。 我看了John Res ..
发布时间:2018-08-03 14:30:58 前端开发

JavaScript原型继承和html画布

我是一名Ruby开发人员,他最终决定认真学习JavaScript。所以我购买了一些书籍,我开始潜入,但当我试图理解原型继承时,我很快陷入困境...... 本书的一个例子是下列。 给定一个Shape,其原型有一个draw方法,以及两个子形状:一个Triangle和一个Rectangle,它继承自Shape; 当我在Triangle和Rectangle实例上调用draw函数时,该方法将正 ..
发布时间:2018-07-03 20:13:23 前端开发

Extjs:通过构造函数或initComponent来扩展类?

在extj中,您可以随时通过构造函数()来扩展一个extjs类。对于从组件中衍生的类,您还可以通过 initComponent()扩展。 我想知道为什么这么多代码通过 initComponent 扩展,而构造函数似乎是通用扩展方法。 initComponent 比构造函数提供明确的优势? 解决方案 首先,通过构造函数重写的能力被添加到更高版本的Ext中,而不是 initCompone ..
发布时间:2017-10-08 10:49:23 前端开发

在JavaScript中执行继承

现在,我知道你不能像C#那样执行继承,我已经看到它在互联网上提到它是有可能的。如果不可能使用纯粹的JavaScript代码,那么是否可以使用 Ext JS JS ,如果是这样? 解决方案 面向JavaScript的范例是基于原型。没有“类”,只是对象。 您可以以不同的方式实现继承。两个更受欢迎的替代品是“伪古典”和“原型”形式。例如: 伪经典继承 我认为这是最受欢迎的方式 ..
发布时间:2017-10-08 09:41:58 前端开发

检查一个构造函数是否在ES6中继承另一个

我有一种情况,我需要检查一个构造函数(X)在其原型链中是否有另一个构造函数(Y)。或者,它是Y本身。 最快的方式可能是(new X())instanceof Y 。在这种情况下,这不是一个选项,因为如果没有有效的参数,如果实例化的构造函数可能会抛出。 我认为的下一个方法是这样的: const doesInherit =(A,B)=> { while(A){ if(A === ..
发布时间:2017-08-03 19:30:11 前端开发

覆盖原型继承方法

我正在使用这种克隆方法,从 Pro JavaScript设计模式中进行原型继承与 Crockford的object()函数基本相同。 (唯一的区别是Crockford添加了调用括号,但是由于F是空的,我不知道它是否重要,我不认为这个问题。) clone = function(object){ function F(){} F.prototype = object; 返回新的F; ..

JavaScript中的原型和构造函数(plain English)?

“JavaScript是世界上最误解的语言”-D.Crockford 我的问题: 简单的英语中的构造函数和原型? 使用原型?使用 原型和构造函数后面的目的是什么?我的意思是他们提供更多的 的灵活性。我问这个问题,因为我在过去六个月中一直在使用这种语言 ,从来没有使用过原型和 构造函数的情况。 我不是在寻找任何语法,以及如何去做事情的解释,因为我明白他们的一部分,只是想以 ..

范围链查找vs原型查找 - 这是什么时候

如果一个变量在需要时在函数中不可用,那么它在范围链中(这是一个闭包)被查找,但有时候它在原型链中被搜索。我试图包裹我的头发生在什么时候发生。我想知道是否有人能为我清除雾气,或者让我参考一些文献,特别讨论这个话题。 例如,我说的是正确的: - 对象,因此绑定到上下文的公共变量(this)总是在原型链中查找? - 私有变量总是在范围链中查找(即执行上下文中的函数链)? - 是否有任何情况下, ..

在node.js绑定中实现继承

我在C ++库周围编写Node.js绑定。我可以将C ++库中的关键对象标识为Node.js(即ObjectWrap的派生类)。我也可以看到这些对象之间的继承关系。 如何公开 ClassA , ClassB code>作为node.js类( ObjectWrap 的派生物)并操作其原型(在v8 C ++代码中),使 c $ c> ClassB 和 ClassC 是 ClassA ? 解 ..
发布时间:2016-10-23 20:07:20 C/C++开发

preventing无限循环利用骨干风格的原型继承时

我使用的是改编自一个骨干扩展功能(相同的除了一些改变以符合我的雇主的命名约定)来实现原型继承。建立结构如下(下大大简化)后,我得到一个无限循环。 走势=功能(){}; Graph.extend = myExtendFunction; Graph.prototype = { generateScale:功能(){ //做东西 } } //基类别处定义 UsageGrap ..

在Backbone.js的我怎样才能型号超默认作为默认值子?

我有一个类,定义了一些默认值,并定义了一些默认的子类。但是,当我创建了子类的实例只着眼于当地的默认设置,不与母公司合并其默认值。有没有简单的方法来做到这一点没有在每个子类中的初始化函数父默认明确合并当地的默认值? VAR库存= Backbone.Model.extend({ 默认值:{ 猫:3, 狗:5 } });VAR ExtendedInve ..
发布时间:2016-07-30 15:39:44 前端开发