覆盖javascript中现有对象的函数

2024-01-21

考虑以下代码:

mynamespace.myclass = function() {
    this.myfunction = function() { alert("Original"); }
}

我想做的是从 mynamespace.myclass 声明之外覆盖 myfunction。

虽然通过原型添加新函数似乎可以正常工作,但如果我定义一个具有相同名称的函数,则原始函数不会被覆盖:

mynamespace.myclass.prototype.myfunction = function() { 
   alert("Overwritten");
}

有任何想法吗?


那是因为myfunction被添加到构造函数中,发生这种情况after添加原型属性(以便“原始”实际上覆盖“覆盖”)。

你必须通过覆盖来模仿这种行为mynamespace.myclass itself:

var oldClass = mynamespace.myclass; // Copy original before overwriting
mynamespace.myclass = function () {
    // Apply the original constructor on this object
    oldClass.apply(this, arguments);

    // Now overwrite the target function after construction
    this.myfunction = function () { alert("Overwritten"); };
};
mynamespace.prototype = oldClass.prototype; // Same prototype
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

覆盖javascript中现有对象的函数 的相关文章

随机推荐

  • 无法读取黑底白字 Data Matrix 条形码

    iOS 8 中添加了 Data Matrix 条形码支持 如果 Data Matrix 条形码是黑底白字 深色浅色 我可以使用它来读取它们 但是 它永远不会读取黑底白字 浅色深色 条形码 读起来很好 无法阅读此内容 根据 Data Matr
  • 如何格式化 Pandas 数据框的 IPython html 显示?

    如何格式化 Pandas 数据帧的 IPython html 显示 以便 数字右对齐 数字以逗号作为千位分隔符 大浮点数没有小数位 我明白那个numpy有设施set printoptions我可以在哪里做 int frmt lambda x
  • 删除 Jupyter Notebook 的每个单元格行上的播放按钮显示

    我在使用 Jupyterbook 时不小心按下了一些按钮 现在 每个单元格都会显示一个 运行此单元格 播放按钮 图标 这在视觉上会分散注意力 我找不到切换开关 命令来将其关闭 我可以把它关掉吗 您很可能已经升级了notebook打包到版本5
  • 如何获取当前小部件的偏移量

    每当用户按下屏幕时 我就尝试绘制一个小部件 目前 我通过存储小部件列表来做到这一点 当 ontapup 在手势上触发时 我将添加到小部件列表中 Widget build BuildContext context Widget draw ne
  • 路由模型绑定和软删除 - Laravel 4

    当使用软删除和路由到模型绑定时 会出现一种情况 如果注入的模型已被 软删除 则您无法查看该模型 e g 我有一个工作模型 如果我 垃圾 其中一个模型 然后打开垃圾箱并尝试查看作业模型 我会收到 404 未找到资源 我通过使用 Route b
  • 如何使用另一个板条箱中定义的宏?

    我看过一些使用以下命令创建 Python 模块的教程cpythoncrate 但构建时仍然出现错误 extern crate cpython use cpython PyObject PyResult Python PyTuple PyDi
  • F# 中可以进行函数重载吗?

    就像是 let f x log x 然后我可以将 f 应用于矩阵 向量或浮点数 我想这是不可能的 因为 F 是严格静态类型的 还有其他模式可以解决这个问题吗 Thanks 看我对这个问题的回答 具有泛型参数类型的函数 https stack
  • Node.js Stream API 泄​​漏

    在使用节点流时 我注意到几乎每个教程都会教授以下内容 Get Google s home page require http get http www google com function response The callback pr
  • Strapi Beta 带有用于电子邮件的自定义 Sendgrid 控制器代码

    Strapi beta 的结构改变了插件的架构方式 删除了 plugins 目录 插件现在保存在 node modules 目录中 我正在尝试编写一些自定义代码以在下订单后触发确认电子邮件 在以前版本的 Strapi 中 电子邮件插件目录位
  • 想要在 Twilio Studio 中使用 Whisper

    我想在 Twilio Studio 中使用 Whisper 这可能吗 现在我只使用 Twilio Studio 和 TwiML Bin 我的目标是 用户呼叫我的 Twilio 号码 将呼叫连接至支持团队电话 在开始用户 客户 和支持团队之间
  • Queryable.Any() 返回 null?

    我有一个数据库查找 例如 var configs dbData Configs Where e gt headers Contains e headerId e flag true if configs Any 其中 configs 作为
  • 如何使用 ggplot2 和线性近似拟合和绘制指数衰减函数

    我试图在只有几个时间点的数据上拟合指数衰减函数 我想使用指数衰减方程 http en wikipedia org wiki Exponential decay y y0 e r time 为了比较r数据集和因子之间 或最终的半衰期 我知道使
  • VS2015 中“DateTime”不包含“ToShortDateString”的定义

    在 VS 2015 中创建通用应用程序并尝试在共享项目中使用 DateTime 的 ToShortDateString 方法时出现以下问题 Visual Studio 2015 智能感知将此显示为错误 但应用程序运行良好 只是想知道 这是
  • 外部链接或 url 在phonegap 上不起作用

    我正在尝试使用phonegap 1 1 0 xcode4 和jqtouch 开发一个应用程序 问题是我无法打开任何外部链接 例如 如果我使用此 href 属性编写锚标记 href http www google com 运行应用程序并单击链
  • 卢阿。在文件中搜索字符串并打印第二列

    寻找解决方案来替换 Lua 中的以下命令 grep dhcp range tmp etc dnsmasq conf awk F print 2 tried for line in file lines do if line match th
  • 在 ubuntu 14.04 中升级 openSSH 7.2p

    我有一台运行 Ubuntu 14 04 的服务器 但我有 PCI 要求问题 我已经在我的服务器中安装了 OpenSSH 6 6p1 然后将其升级到 OpenSSH 7 2p 使用以下命令编译代码直接从 OpenSSH 的存储库进行 make
  • 在用户窗体中使用 Office 图标作为命令按钮上的图像

    我正在创建一些在 OutLook 2010 中使用的用户表单 我想利用一些 Office 图标作为各种命令按钮上的图像 无论如何 我是否可以引用 Office 图标 以避免必须使用宏分发 ico 文件 是的 这将为您提供蓝色信息圆圈 Sub
  • 分段错误 - 在 C 中声明和初始化数组

    我对 C 非常陌生 来自 Python Java 和 C 世界 这可能是一个愚蠢的问题 但我遇到了分段错误 struct for storing matrices typedef struct int m int n float elts
  • jsdoc @ 代码块内的字符

    我正在尝试为这样的模块函数编写文档 Usage NgModule imports BrowserModule ThisModule forRoot name Name version 1 0 param config Service con
  • 覆盖javascript中现有对象的函数

    考虑以下代码 mynamespace myclass function this myfunction function alert Original 我想做的是从 mynamespace myclass 声明之外覆盖 myfunction