问题标签 [extend]

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 投票
3 回答
738 浏览

model-view-controller - 如何向某人解释数据结构不应该自己绘制,解释关注点分离?

我有另一个程序员,我试图解释为什么 UI 组件不应该也是数据结构。

例如,假设您从“数据库”获得了一个包含记录集的数据结构,并且您希望在应用程序的 UI 组件中显示该记录集。

根据这位程序员(他将保持无名,他还年轻,我正在教他......),我们应该将数据结构子类化为一个类,该类将在我们的应用程序中绘制 UI 组件!!!!!!

因此根据这个逻辑,记录集应该管理 UI 的绘制。

******总台*****

我知道要求记录集自己绘制是错误的,因为如果您希望在 UI 上的多个类型的组件上呈现相同的数据结构,那么您将手头上一团糟;您需要为从记录集的基类呈现的每个 UI 组件扩展另一个类;

我很清楚 MVC 模式的“简洁性”(我真正的意思是你不会混淆你的数据(模型)与你的 UI(视图)或发生在数据(控制器或多或少......好吧,API 不应该真正处理它......控制器应该尽可能少地调用它,告诉它要渲染哪个视图))但它肯定更干净而不是使用数据结构来呈现 UI 组件!

除了上面的例子,我还有什么其他的建议可以发给他吗?我知道,当您第一次学习 OOP 时,您会经历一个“阶段”,您只想扩展所有内容。

接下来是一个阶段,当您认为设计模式是每一个问题的解决方案......这也不完全正确......谢谢杰夫

有什么方法可以让我轻轻地将这个孩子推向正确的方向吗?你还有更多的例子可以帮助向他解释我的观点吗?

0 投票
1 回答
1799 浏览

ruby-on-rails - 导轨。如何在不修改控制器文件的情况下从插件扩展控制器类?

我使用的是 Rails 2.2.2。Rails 手册说,从插件扩展控制器的方法是:

插入:

应用程序/控制器/name_controller.rb

结尾

问题:如果我们知道控制器名称,是否有任何方法可以从插件扩展控制器,而无需修改控制器文件。

0 投票
2 回答
619 浏览

django - 在django中扩展User模型后,如何创建ModelForm?

我在 django 中扩展了 User 模型以包含其他几个变量,例如位置和雇主。现在我正在尝试创建一个包含以下字段的表单:

我创建了一个模型:

所以,我的问题是,如何创建一个可以访问所有字段的 ModelForm,无论它们来自 User 模型还是 UserProfile 模型?

希望这是有道理的。如果有任何问题,我会很乐意澄清。

0 投票
2 回答
411 浏览

linq - 使用特定于一个实体集合的基于集合的辅助操作扩展 Linq 数据上下文的约定是什么

我可能在这里含糊不清,但我正在寻找一个在 linq 中放置基于集合的辅助操作的好地方,这样我就可以做类似的事情;

它做了类似的事情

因为我可以弄清楚如何扩展Table<Selection>我能做的最好的事情是在选择的部分类中创建一个静态方法(类似于 Ruby),但我必须像这样传递数据上下文;

这很糟糕,因为我有两个约定来进行基于集合的操作,并且我必须将数据上下文传递给静态类。

我见过其他人推荐将辅助方法打入部分数据上下文中,例如;

但我觉得这使 dc 成为内聚行动的垃圾场。

我肯定错过了一些东西。但愿如此。什么是约定?

0 投票
1 回答
588 浏览

python - 如何扩展/修补现有模块或包?

我想扩展名为 OpenERP 的 python 应用程序的一些特定于语言环境的功能。我所需要的只是实现一个第三方 module.function,每次 OpenERP 调用 locale.setlocale() 函数时都会调用它,而不改变 OpenERP 和 locale 模块源代码。

我能想象的唯一方法是在主应用程序包目录中提供一个名为 locale.py 的模块,但这似乎是一种非pythonic的解决方法。

0 投票
3 回答
5649 浏览

jquery - jQuery.extend 在 Internet Explorer 中不起作用,但在 Firefox 中起作用

我正在尝试以下操作:

我现在应该期望能够执行以下操作:

在 Firefox 3.6 中,这工作得很好。在 Internet Explorer 7 和 8 中,它显示“对象不支持此属性或方法”。

我误解了 $.extend 应该如何工作,还是 IE 表现不佳?

jQuery 版本:1.3.2

谢谢!

0 投票
5 回答
2292 浏览

php - 扩展单例类

我曾经像这样创建一个单例类的实例:

对于非单例类:

我认为我们不应该区分我们如何创建一个类的实例,无论这是否是单例。如果我查看其他类的看法,我不在乎我们是否需要单例类。所以,我仍然对 php 如何处理单例类感到不舒服。我想而且我一直想写:

只是另一个非单例类,有没有解决这个问题的方法?

0 投票
2 回答
10835 浏览

jquery - jQuery fn.extend ({bla: function(){}} 与 jQuery.fn.bla

好的,我想我得到 了 jQuery.extend 和 jQuery.fn.extend 之间的区别?

因为通用扩展可以扩展任何对象,并且 fn.extend 用于插件函数,可以使用一些内部 jquery voodoo 直接从 jquery 对象调用。

所以看起来人们会以不同的方式调用它们。如果您使用通用扩展通过添加函数 y 来扩展对象 obj,则该方法将附加到该对象 obj.y(),但如果您使用 fn.extend,那么它们将直接附加到 jquery 对象 $.y()。 ...我是否得到了正确的是或否,如果没有,我的理解有什么错误?

现在我的问题:

我正在阅读的书提倡使用

语法,但在文档中它说

我想如果你也想要 b 那就是

这些在功能和性能方面是否等效,如果不是,有什么区别?

非常感谢。我正在挖掘 jQuery!

0 投票
4 回答
55044 浏览

php - 从另一个对象向 stdClass 对象添加属性

我希望能够做到以下几点:

如何扩展 $obj 使其包含 $obj2 的属性,例如:

我知道我可以使用一个数组,将所有属性添加到数组中,然后将其转换回对象,但是有没有更优雅的方法,如下所示:

扩展($obj,$obj2);//将$obj2的所有属性添加到$obj

谢谢!

0 投票
5 回答
1755 浏览

c# - 重新发明标签控件

我需要从头开始重新发明/重新创建标签控件,以添加我自己的魔力。是的,我知道你在想什么(如果你不这么想,你不应该吗?)。

有人可以指出我正确的方向吗?

谢谢你。

重新创建标签的全部目的是我希望完全控制它在屏幕上的绘制方式,以便我也可以为它使用 KeyDown 事件处理程序。例如,用户可以像编辑 TextBox 控件的内容一样编辑标签的内容。

此外,我不能只使用 TextBox 控件,因为它几乎需要甚至更多的工作才能获得我想要的结果。