我一直在阅读SO帖子,我还没有想出任何对我有用的东西。从原型调用私人js功能
我有一个JS对象
function MyObject(a,b){
this.member_a = a;
this.member_b = b;
function operation1(){
$('#someDiv1').text(this.a);
}
function operation2(){
$('#someDiv1').text(this.b);
}
MyObject.prototype.PublicFunction1 = function(){
//There is an ajax call here
//success
operation1();
//failure
operation2();
}
}
大致如此。这就是我现在的模式。它位于外部JS文件中。我的页面创建了一个MyObject(a,b)
,断点显示member_a
和member_b
都正确初始化。在我的页面调用MyObject.PublicFunction1();
发生了一些其他的奇迹后,ajax执行,我输入operation1()
或operation2()
,但是当我在member_a
和member_b
里面的时候都是undefined
,我不明白为什么。我失去了范围或东西。我有私有函数和原型在对象体声明之外,两者的组合。我如何从一个对象的原型调用一个私有函数来处理这个对象的数据?
我也试过
ClassBody{
vars
private function
}
prototype{
private function call
}
,并已阅读this
分配给构造内的原型函数是错误的。请参阅[我的答案](http://stackoverflow.com/a/17393153/218196)了解原型和构造函数的用途。 –
我已经重新安排我的代码以匹配。但是,当我输入原型函数时,我拥有所有的类变量,在ajax调用结束时,它们全部返回到未定义状态,唯一设置的是从调用返回的那些变量。它就像在ajax被调用后的某个时刻重新插入。我不明白。我可能会认为JS类= C#类,并且在翻译时丢失了一些东西。 – Bmo