调用javascript函数不传递类变量

时间:2010-08-23 14:37:08

标签: javascript asp.net-ajax

我对javascript不是很好,我希望你比我更强硬。这是我的问题:我使用MicrosoftAjax.cs框架,我使用这样的类:

MyClass =
{
teststring:null,
$constructor: function(test){
teststring = "test";
},
GetInformationFromName : function(inputname, BeginningSeparator, EndSeparator) {
    alert(BeginningSeparator);
    alert(EndSeparator);
},
GetId: function(inputname) {
            return MyClass.GetInformationFromName(inputname,MyClass.teststring, "???");
        }
}

这是一个非常简单的功能,我只想从GetId()中给出的名称中提取信息。

我的问题是在GetPerId中我可以看到(在visual studio的调试器中)MyClass.teststring的值。但是当我调试函数调用并且我到达GetInformationFromName时,参数中传递的值为null,而“正常”值不会造成任何麻烦。

具体的例子(我能看到的): - > GETID( “TOTO”) - > MyClass.GetInformationFromName(“toto”,“&”,“???”); - > GetInformationFromName(toto“,null,”???“)

你对此有任何暗示吗?

2 个答案:

答案 0 :(得分:1)

您没有在构造函数中正确设置teststring。请注意,在调用类变量和方法时,您需要使用MyClass.methodname还是MyClass.variablename?在构造函数中,只需设置teststring="test",然后设置MyClass.teststring="test"以覆盖默认值null

我的代码段中没有看到GetPerId方法,所以我无法解释为什么VS在那里显示正确的值,但我可以告诉你,你的构造函数正在设置 local <{1}}的变量,当您在teststring中调用GetInformationFromName时,您正在传递全局变量。

此外,我无法看到您是否以及何时致电GetID ...所以我不能100%确定您是否设置了本地$constructor变量。

答案 1 :(得分:0)

对于任何想到这个问题的人来说,我发现了我的错误。我应该使用像这样的构造函数:

$constructor: function(test){
MyClass.teststring = "test";
}

抱歉打扰了,希望有一天能帮到别人......