问题标签 [prototype-oriented]

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.

0 投票
26 回答
504233 浏览

javascript - JavaScript .prototype 是如何工作的?

我不是那么喜欢动态编程语言,但我已经编写了相当一部分的 JavaScript 代码。我从来没有真正理解过这种基于原型的编程,有人知道它是如何工作的吗?

我记得前段时间与人们进行了很多讨论(我不确定自己在做什么),但据我所知,没有类的概念。它只是一个对象,这些对象的实例是原始对象的克隆,对吗?

但是 JavaScript 中这个“.prototype”属性的确切用途是什么?它与实例化对象有什么关系?

更新:正确的方法

这些幻灯片也确实有很大帮助。

0 投票
2 回答
1065 浏览

javascript - 是否值得使用原型或者我们应该为javascript使用OOP?

我现在是一名开发人员,在过去的几年里,我正在使用原型框架,它是面向 OOP 的实现,用于 Javascript。我也使用过 jquery 和其他一些框架。

我一直在研究 js 如何工作以及与 OOP 有何不同,因为它是一种面向原型的语言。在我看来其实是一个很棒的概念,面向原型的语言。

给予正确的关注:
- 这就是语言的使用方式,因此更快,更有效率,理论上,更简单,更流畅。
- 每个浏览器都有自己的 javascript 应该如何工作的实现,因此有时无法在所有浏览器或至少大多数浏览器中使用简洁的代码。
- 通常那些 OOP 框架(dojo.declare()、Js.Class、MooTools 等)非常适合制作出色的作品,而且它们是跨浏览器的。

我不禁想知道,是否值得开始使用面向 javascript 原型的 RIA?或者我应该选择Dojo.declare()js.class还是类似的?

0 投票
2 回答
1102 浏览

javascript - 原型链获取不到 Object()?

我读了一篇解释原型链是什么的文章。

它说如果我尝试访问一个对象的属性但它没有它,javascript 引擎将尝试它的.constructor.propotype. 如果它也没有,请尝试.construtor.propotype.constructor.propotype。直到找到内置的 Object()。

但我对此进行了测试:

然后:

我得到一个空a对象。

然后:

我得到一个空a对象。

它循环。不管.constructor.prototype我调用多少,它都找不到Object()。怎么了?我误解了原型链吗?

0 投票
5 回答
223 浏览

javascript - 我在 JavaScript 中对这个原型做错了什么,有什么想法吗?

下面的代码不会像我想象的那样产生原型。谁能看到我做错了什么?

有任何想法吗?我认为这是扩展 JS 类的正确方法,但我遗漏了一些东西。

0 投票
5 回答
96531 浏览

javascript - 如何在Javascript中声明一个静态变量

在下面的代码中,我想要一个计数器来跟踪创建的 Person 对象的数量。这段代码没有这样做,我将如何做到这一点?

0 投票
1 回答
94 浏览

javascript - 只获得最后一个分配给 this.class 的类

请任何人都可以看到这段代码有什么问题,我有 2 个带有 .man 和 .girl 的类图像,每个图像包含 10 个图像。接下来我有 2 个 div 的 #manCount 和 #girlCount 显示总图像数(每个 10)

当我将一张图像移动到#drop 时,它会从#manCount 中减少 1 个数字。因此,总共有 10 个类名称为 .man 的图像,当最后一个图像移动到 #drop 时,我会弹出一个所有图像都已处理的弹出窗口。

现在我也想处理 .girl 类图像,但是当我让两个类都初始化时,它只能与 .girl 类一起使用。

上面的代码运行得很好但是当我初始化一个新对象时

它总是选择女孩对象,有什么帮助我做错了吗?

它总是在拖动时返回我的女性对象。显示截图:http ://screensnapr.com/v/SrsyGz.png

这是问题:http ://screensnapr.com/v/hxrZYa.png

谢谢

编辑:

好的,我已经通过添加鼠标悬停事件解决了这个问题,我不确定它有多完美,因为我对它很陌生,但它可以按预期工作

0 投票
1 回答
94 浏览

javascript - 如何使用 Object.prototype 向 Object 构造函数添加函数?

这些天我一直在使用这些脚本,经过大量研究,我仍然找不到答案。

所以这是问题所在,我想(例如)将一个函数添加到一个对象中(例如,.length(),因为本机还没有这个),我试过了:

最后一个不起作用,这是使用 Object {} 添加函数的最短方法,我不知道为什么。我遇到过这些代码(例如来自 jQuery 1.7.1),我试图弄清楚它是如何工作的,但对我不起作用。我认为它必须以某种方式工作,因为 jQuery 使用它,你能告诉我怎么做吗?

我见过很多人使用这些代码:

其他人使用:

那么区别是什么呢?这在某种程度上与第一个问题有关,所以我真的很想完全理解它。

0 投票
2 回答
591 浏览

javascript - 如何在不调用其构造函数的情况下复制对象及其原型链?

如何在不调用其构造函数的情况下复制对象及其原型链?

换句话说,dup以下示例中的函数会是什么样子?

尽管我看着很痛苦,但这里是这个例子的一个jsfiddle

尽管在我的示例中只使用了函数,但我也需要这些属性。

0 投票
5 回答
1925 浏览

javascript - 如何在 JavaScript 中进行继承而不在子类的所有实例之间共享同一个超类实例?

我注意到每个关于如何进行 JavaScript 继承的教程都是这样做的:

但这将创建超类的单个实例并在子类的所有实例之间共享它。

问题是我想将参数传递给超类构造函数,该构造函数源自传递给子类的参数。

在 Java 中,这将是这样完成的:

我试着做这样的事情:

但这行不通。那么有没有办法在 JavaScript 中做到这一点?

0 投票
1 回答
106 浏览

javascript - Javascript 行为重用:这种方法会有什么副作用?

我试图理解纯基于原型的 JavaScript,而我正在努力解决的一个具体问题是重用(继承)。

对于我的项目,我采用了这种创建可重用对象的方式。

然后我想“实例化”/复制 Radio 对象,创建两个不同的收音机。

这有效,但它会继续吗?任何人都可以预测任何不想要的结果吗?