gpt4 book ai didi

javascript - 为什么 MooTools JSON.encode() 返回 "$caller":null?

转载 作者:行者123 更新时间:2023-11-28 16:15:17 25 4
gpt4 key购买 nike

我使用 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;
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());​

这是一个非常简单的类(class)。现在,如果您尝试一下,就会发现 JSON 上有一个额外的键:

"$caller":null,
"caller":null

最佳答案

$callercaller 都是 MooTools 类添加的属性。

它们的存在是为了帮助使用parent方法。在类实例上使用 JSON.encode 之前,您应该克隆对象并清除不必要的属性。

您可以克隆this并从克隆中删除$callercaller

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());​

关于javascript - 为什么 MooTools JSON.encode() 返回 "$caller":null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11681190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com