无法在我的javascript对象中重新定义函数

时间:2010-10-07 10:54:43

标签: javascript

我有一个使用文字符号定义的对象如下(使用的示例代码)。这是在外部脚本文件中。

if (RF == null) var RF = {};
RF.Example= {
    onDoSomething: function () { alert('Original Definition');} ,
    method1 : function(){ RF.Example.onDoSomething(); }
}

在我的.aspx页面中,我有以下内容..

$(document).ready(function () {
        RF.Example.onDoSomething = function(){ alert('New Definition'); };
        RF.Example.method1();
    });

当页面加载document.ready时,会调用alert('Original Definition');,但只会显示onDoSomething。有人能指出我正确的方向。我基本上想要重新定义method1函数。谢谢,本。

修改

感谢您的评论,我看到这是有效的。 onDoSomething()实际调用另一个将method1 : function(){ RF.Example2.callbackFunction(function() {RF.Example.onDoSomething();}); } 函数作为回调参数的方法是否重要? e.g。

{{1}}

2 个答案:

答案 0 :(得分:1)

引用的代码应该可以使用(并且:http://jsbin.com/uguva4),所以除了问题之外的其他内容导致此行为。例如,如果您使用任何类型的JavaScript编译器(如Closure)或缩小器或其他东西,名称可能会被更改,这种情况下您在旧版本时添加新的onDoSomething已重命名。或者,也许警报是由其他东西触发的,而不是你认为触发它的东西。或者其他东西可能已经抓住了对旧onDoSomething的引用(也许是外部脚本中的其他地方)并直接使用它,如下所示:http://jsbin.com/uguva4/2

答案 1 :(得分:0)

感谢您的回复..最后答案与发布的代码无关。干杯验证我不会疯狂。