1
$.fn.uWorklet = function() {
  var worklet = this;
  var plugin = {
    pushContent: function(target, data) {
    . . .
    }
  }
  return plugin;
}

在上面,我想用我自己的方法替换 pushContent 方法。这可能吗,如果可以,怎么做?

4

2 回答 2

1

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

> 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

开个玩笑,必须有一个更好的解决方案来解决您的问题:如果这是您的代码,则使其更加模块化,如果是库,则分叉代码并修复它。

于 2012-08-13T18:32:29.167 回答
0

你不能只替换整个uWorklet方法吗?如果你有代码,你可以复制它,替换pushContent方法并替换整个东西。

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

于 2012-08-13T18:17:29.283 回答