我对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,”???“)
你对此有任何暗示吗?
答案 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";
}
抱歉打扰了,希望有一天能帮到别人......