覆盖对象方法/函数

时间:2012-10-28 18:20:31

标签: javascript jquery

我有original.js文件,但我想更改其中的一些内容。我无法修改original.js,但我可以添加另一个better.js文件,以便我可以覆盖original.js

的某些功能

original.js包含:

MyHandler = {
   data:{},
   var1:false;
   handlers:{},

   init:function(handlers){
       function1();
       function2();
   }
   function1:function()
   {
    // function1 code that needs to be replaced
   };
}

$(document).ready(function ()
{
///...some code
      MyHandler.init();
}

我想用新内容重写function1()。 我应该在better.js文件中添加什么内容?

P.S。我知道better.js 应该在 original.js后跟进。

我已经尝试将下面的代码放到better.js,但它不起作用(似乎没有function1工作)

MyHandler = {
   function1:function()
   {
    // new code
   };
}

我做错了什么?

1 个答案:

答案 0 :(得分:3)

就这样做:

if (!MyHandler) { MyHandler = {};}
MyHandler.function1 = function() { ... };

或者您可以使用jQuery $ .extend api方法。