问题标签 [redefine]

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 投票
13 回答
75235 浏览

php - 重新定义类方法或类

有没有办法在不使用典型继承的情况下重新定义一个类或它的一些方法?例如:

我能做些什么来代替buggy_function()?显然这是我想做的

这正是我的困境:我更新了一个破坏我的代码的第三方库。我不想直接修改库,因为未来的更新可能会再次破坏代码。我正在寻找一种无缝方式来替换类方法。

我发现这个图书馆说它可以做到,但我很谨慎,因为它已经 4 岁了。

编辑:

我应该澄清一下,由于框架限制,我不能将类从third_party_librarytomagical_third_party_library或其他任何东西重命名。

出于我的目的,是否可以只向类添加一个函数?我认为您可以在 C# 中使用称为“部分类”的东西来做到这一点。

0 投票
2 回答
72876 浏览

delphi - 当我直到运行时才知道长度时如何声明数组?

我最初有一个被定义为全局变量的数组[1..1000]。但是现在我需要将其设为 n,而不是 1000,并且直到稍后我才知道 n。在填充数组之前我知道 n 是什么,但我需要它是全局的,因此需要一种在运行时定义全局数组大小的方法。

上下文正在用文件中字节的线性变换填充数组。我不知道文件有多大,直到有人想要打开它并且文件可以是任意大小。

0 投票
2 回答
3466 浏览

perl - 如何重新定义内置 Perl 函数?

我想做两件事:

在生产代码中,我想重新定义 open 命令以使我能够添加自动文件日志记录。我从事数据处理应用程序/流程的工作,作为其中的一部分,用户必须确切地知道正在处理哪些文件。如果他们使用的是旧版本的文件,他们找出的一种方法是通读正在处理的文件列表。

我可以创建一个新的sub来执行此日志记录并返回一个文件指针,并在我的代码中使用它来代替 open。

如果我可以重新定义 open 并让预先存在的代码从这种行为中受益,那就太好了。我可以这样做吗?

在调试代码中,我想重新定义printf命令以插入注释以及指示哪个代码生成该行的书面输出。同样,我有一个可以选择执行此操作的子程序,但是转换我现有的代码很乏味。

0 投票
3 回答
555 浏览

perl - 如何在 Perl 中正确重新定义“打开”?

前段时间,我问了一个问题:如何重新定义 Perl 的内置函数?

答案对我很有帮助。我有一个包覆盖 Perl 的“打开”功能,使我能够记录文件访问。

现在我遇到了一个破坏原始代码功能的案例。

现在我收到这条消息:

我如何解决它?

0 投票
1 回答
2380 浏览

schema - XSD:如何重新定义 simpleType 的数据类型,例如。从 xs:string 到 xs:integer

我正在尝试扩展和定制一个外部 xsd 模式(fixml 标准)。我需要更改一些元素的数据类型,而不触及原始架构,而是重新定义它;但一直发现它非常麻烦。

存在什么:

字段-base.xsd

我希望它变成什么:

我尝试过的(但失败了):

书籍和网络似乎也没有太大帮助,所以我开始质疑这在理论上是否可行。

0 投票
2 回答
1867 浏览

apache-flex - Flex - 如何在一个组件中定义另一个组件中的功能?

我是一个完整的 Flex/Flash 菜鸟,正在运行 Adob​​e Flash Builder 4 Beta 2。我有一个主要组件需要能够调用多个弹出窗口,除了一个功能和几个标签之外,每个都几乎相同。显然,我更希望能够在调用弹出窗口时定义此函数并更改这些标签,而不是拥有大量具有几乎相同代码的 .mxml 文件,我只是不知道该怎么做。我想出了如何更改标签,但不确定如何重新定义功能。

为简单起见,假设我的代码如下所示:

主.mxml:

弹出.mxml:

现在说我想test()在 main.mxml 中调用它时更改 popup.mxml ......我该怎么做?请提供详细信息...记住我是菜鸟:-)

0 投票
3 回答
1991 浏览

python - Python __setattr__ 和 __getattr__ 用于全局范围?

假设我需要创建自己的小型 DSL,它会使用 Python 来描述某种数据结构。例如,我希望能够写出类似的东西

并且有 Python,而不是抱怨未声明的标识符或尝试调用函数 some_stuff,为了我的进一步方便,将其转换为文字表达式。

__getattr__通过创建一个具有正确重新定义和__setattr__方法的类并按如下方式使用它,可以得到一个合理的近似值:

不过,如果可以摆脱烦人的“e”,那就太酷了。前缀,甚至可能避免使用 []。所以我想知道,是否有可能以某种方式暂时“重新定义”全局名称查找和分配?在相关的说明中,也许有很好的包可以轻松实现 Python 表达式的这种“引用”功能?

0 投票
2 回答
2561 浏览

python - 重新定义 __and__ 运算符

为什么我不能重新定义__and__运算符?

我想要(a>0) && (b>0),但我得到了 b,通常的行为and

0 投票
3 回答
2301 浏览

c++ - 如何从函数中更改值或静态 char*?C++

我正在尝试更改我在启动时定义的“静态字符 *”的值,我从函数内部执行此操作,当此函数返回 var 时,我试图重新设置该值并不会保留它。

例子:

如何在不使用静态缓冲区的情况下实现这一目标?我应该使用其他数据类型吗?如果有,是哪一个?

0 投票
4 回答
33459 浏览

ruby - 如何在没有警告的情况下重新定义 Ruby 常量?

我正在运行一些 Ruby 代码,每次更改日期时都会评估 Ruby 文件。在文件中,我有常量定义,比如

而且,当然,它们使解释器每次都显示不需要的“已经初始化的常量”警告,所以,我想要以下功能:

我可以通过像这样编写所有常量定义来避免警告:

但它不优雅而且有点湿(不是DRY)。

有更好的方法def_if_not_defined吗?怎么做redef_without_warning

--

感谢史蒂夫的解决方案:

--

这个问题很老了。上面的代码只对 Ruby 1.8 是必需的。在 Ruby 1.9 中,P3t3rU5 的答案不会产生任何警告,而且更好。