Javascript 为什么MooTools JSON.encode()返回$呼叫者:无效的
我使用MooTools创建了一个新类。 我的班级看起来像这样 更新:Javascript 为什么MooTools JSON.encode()返回$呼叫者:无效的,javascript,mootools,Javascript,Mootools,我使用MooTools创建了一个新类。 我的班级看起来像这样 更新: var c=new Class({ a:'', b:'', c:'', d:'', initialize:function(ee){ this.e=ee; }, buildJSON:function() { var cInstance=new c(this.e); cInstance.a=this.a; cInstance.b=this.b; cInstance.c=this.c; cInsta
var c=new Class({
a:'',
b:'',
c:'',
d:'',
initialize:function(ee){
this.e=ee;
},
buildJSON:function()
{
var cInstance=new c(this.e);
cInstance.a=this.a;
cInstance.b=this.b;
cInstance.c=this.c;
cInstance.d=this.d;
return (JSON.encode(cInstance));
}
});
var x=new c("action");
x.a="Hello a";
x.b="Hello b";
x.c="Hello c";
x.d="Hello d";
alert (x.buildJSON());
这是一个非常简单的类。现在,如果您尝试,JSON上还有一个额外的键:
"$caller":null,
"caller":null
$caller
和caller
都是MooTools类添加的属性
它们的存在是为了帮助使用parent
方法。在类实例上使用JSON.encode
之前,应该克隆对象并清除不必要的属性
您可以克隆此并从克隆中删除$caller
和caller
var c=new Class({
a:'',
b:'',
c:'',
d:'',
initialize: function(ee) {
this.e=ee;
},
buildJSON: function() {
var data = Object.clone(this);
delete data.$caller;
delete data.caller;
return (JSON.encode(data));
}
});
var x=new c("action");
x.a="Hello a";
x.b="Hello b";
x.c="Hello c";
x.d="Hello d";
alert (x.buildJSON());
$caller
和caller
都是MooTools类添加的属性
它们的存在是为了帮助使用parent
方法。在类实例上使用JSON.encode
之前,应该克隆对象并清除不必要的属性
您可以克隆此并从克隆中删除$caller
和caller
var c=new Class({
a:'',
b:'',
c:'',
d:'',
initialize: function(ee) {
this.e=ee;
},
buildJSON: function() {
var data = Object.clone(this);
delete data.$caller;
delete data.caller;
return (JSON.encode(data));
}
});
var x=new c("action");
x.a="Hello a";
x.b="Hello b";
x.c="Hello c";
x.d="Hello d";
alert (x.buildJSON());
你能把这篇文章发到JSFIDLE上吗?这里是一些有同样问题的人的文章。你能把这个贴在JSFIDLE上吗?这里是一个有同样问题的人的帖子。嗯