首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript+jquery monkeypatching /替换/重写类方法

javascript+jquery monkeypatching /替换/重写类方法
EN

Stack Overflow用户
提问于 2012-08-14 02:13:33
回答 2查看 100关注 0票数 1
代码语言:javascript
复制
$.fn.uWorklet = function() {
  var worklet = this;
  var plugin = {
    pushContent: function(target, data) {
    . . .
    }
  }
  return plugin;
}

在上面的代码中,我想用我自己的方法替换pushContent方法。这可以做到吗?如果可以,如何做到?

EN

回答 2

Stack Overflow用户

发布于 2012-08-14 02:32:29

你想摆弄私人作用域吗?有很多方法可以做到这一点,但不要告诉任何人这是你从我这里学到的:

代码语言:javascript
复制
> var foo = function() { var x = 1; return x; };
undefined
> foo()
1
> foo = new Function(foo.toString().replace(/^function\s()[^{]+{|}$/gi, '') \
       .replace(/var x = 1/, 'var x = 2'))
function anonymous() {
  var x = 2; return x; 
}
> foo()
2

说笑之外,必须有一个更好的解决方案来解决你的问题:如果这是你的代码,那么让它更模块化,如果它是一个库,那么就派生代码并修复它。

票数 1
EN

Stack Overflow用户

发布于 2012-08-14 02:17:29

你不能直接替换整个uWorklet方法吗?如果你有代码,你可以直接复制它,替换pushContent方法,然后替换整个代码。

否则,我不认为您可以,至少不能使用您到目前为止所展示的代码。也许可以添加一些如何使用uWorklet方法的示例,因为它看起来像是返回一个对象,也许您可以替换该对象中的方法……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11939922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档