问题标签 [prototypal-inheritance]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Extjs:通过构造函数或initComponent扩展类?
在 extjs 中,您始终可以通过constructor()
. 对于从Component
你派生的类,也可以通过扩展initComponent()
。
我想知道为什么这么多代码通过扩展initComponent
,而constructor
似乎是通用扩展方法。是否initComponent
提供明显优势constructor
?
javascript - 在 JavaScript 中,如何使用 [] 运算符访问从 Array 继承的对象?
我有一种情况,我需要创建一个继承自 Array.js 的新 JavaScript 对象。我正在使用以下代码:
非常有趣的是,[] 操作似乎没用,控制台输出为:
我在这里想念什么?
javascript - 用作事件处理程序的 Javascript 原型函数中“this”的值
我正在尝试在 Javascript 中使用原型继承。我下面的代码的问题是,当单击并MyNamespace.MyObj.myEventHandler
调用按钮时, 的值this
不是 的实例MyNamespace.MyObj
,而是被单击的按钮。
我的结构错了吗(有没有更好的方法)?我可以以某种方式确保这this
是对象的实例而不是调用者按钮吗?
这只是我用来学习原型继承的一个非常愚蠢的例子。我意识到上述代码的实际功能可以简单地在 jQuery 中完成,或者我可以使用对象文字或模块模式——但我真的只是对学习原型继承感兴趣,而不是此时实现特定功能.
javascript - EXTENDS 挑战:预处理器函数宏和类 oop
背景
我一直在使用 C 预处理器来管理和“编译”具有多个文件和构建目标的半大型 javascript 项目。这使您可以从 javascript 中完全访问 C 预处理器指令,如#include
、#define
、等。#ifdef
这是一个示例构建脚本,因此您可以测试示例代码:
创建一个src
和一个build
目录,并将 .js 文件放在src
.
便利宏
最初,我只是想要一些预处理器的东西#include
,也许是几个#ifdef
s,但我开始想,有一些方便的宏不是很好吗?实验随之而来。
酷,所以现在我可以写这样的东西:
它将扩展到:
foreach 怎么样?
注意我们是如何潜入条件v=o[k]
内部的,if
这样它就不会干扰应该遵循这个宏的调用的花括号。
类 OOP
让我们从一个 NAMESPACE 宏和一个不起眼但有用的 js 模式开始......
new function(){ ... }
做一些整洁的事情。它将匿名函数作为构造函数调用,因此它不需要()
在末尾添加额外的内容来调用它,并且它内部this
指的是由构造函数创建的对象,即命名空间本身。这也允许我们在命名空间中嵌套命名空间。
这是我的全套类 OOP 宏:
如您所见,这些宏在Variable Object
(为了方便)和this
(出于必要)中定义了许多东西。这是一些示例代码:
扩展呢?
所以这给我带来了一个问题......我们如何将EXTENDS实现为宏来包装通常的“克隆原型,复制构造函数属性”js原型继承?除了要求 EXTENDS 出现在类定义之后,我还没有找到一种方法,这很愚蠢。这个实验需要 EXTENDS 否则没用。只要它们给出相同的结果,就可以随意更改其他宏。
编辑 - 这些对于 EXTENDS 可能会派上用场;为了完整起见,在此处列出它们。
提前感谢您的任何帮助、建议或热烈讨论。:)
javascript - 我在哪里可以找到使用 Crockford 的原型继承方法的大型 JavaScript 项目的示例?
我已经阅读了 Crockford 推动以更明显的原型方式使用 JavaScript(克隆对象以创建新对象,从不使用“new”关键字)。但在野外,我从未见过有人将这种风格用于大型项目。
我在哪里可以找到使用这种风格的大型项目的例子?
powershell - Powershell中的原型继承?
是否有任何库或项目为 Powershell 中的 PSObjects 实现原型继承?
actionscript-3 - Actionscript-3 原型继承
基本上,我想修改 Object
类的构造函数。由于每个类都扩展了 Object,我希望每当
实例化任何类的任何对象时,都会
调用修改后的函数。
所以我这样做了:
并在跟踪语句上放置一个断点。
但它并没有就此止步。
跟踪语句也没有被执行。
任何解决方案/建议?
javascript - ES5 中的 Object.defineProperty?
我正在看到有关使枚举可配置的“新” Object.create 的帖子。但是,它依赖于 Object.defineProperty 方法。我找不到此方法的跨浏览器实现。
我们是否坚持为旧的 Object.create 编写代码?我不能写在 IE6/7 中不起作用的东西。
javascript - Javascript:原型继承和超级构造函数
如何从继承对象调用超级构造函数?例如,我有一个简单的动物“类”:
我想创建一个从 Animal 继承但将腿数设置为随机数的“Chimera”类(在构造函数中提供最大腿数。到目前为止,我有这个:
如何调用 Animal 的构造函数?谢谢
javascript - javascript中的继承,“父”中的变量
我是第一次做 OO javascript。我读过关于继承和原型的文章,并认为我已经破解了它。直到我发现了这个小例子。
如果我执行以下操作:
我希望控制台显示:
然而它显示:
问题当然是这个电话:
除了在 __construct 方法中手动重置它们之外,如何让 TestObject 中的父变量“重置”?
TestObject2 是否有另一种方法可以从 TestObject 继承所有值/方法,并让“新”以 PHP OO 方式表现得像我期望的那样?(我确信 JS 这样做的方式真的很奇怪,就好像我的大脑从大学里正确地为我服务一样 Java 在这方面就像 PHP 一样工作)