在Class中的reset函数的作用是什么?是起到unlink的作用吗?如果是剥离对象的引用的话,我把这个函数单独测试了一下,并没有起到object对象分离的作用mootools1.3.2中的源代码:
var reset = function (object) {
for (var key in object) {
var value = object[key];
switch (typeOf(value)) {
case 'object':
var F = function () { };
F.prototype = value;
object[key] = reset(new F);
break; case 'array':
object[key] = value.clone();
break;
}
}
return object;
};
var reset = function (object) {
for (var key in object) {
var value = object[key];
switch (typeOf(value)) {
case 'object':
var F = function () { };
F.prototype = value;
object[key] = reset(new F);
break; case 'array':
object[key] = value.clone();
break;
}
}
return object;
};
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title> <script type="text/javascript">
var reset = function (object) {
for (var key in object) {
var value = object[key];
switch (typeof(value)) {
case 'object':
var F = function () { };
F.prototype = value;
object[key] = reset(new F);
break; case 'array':
object[key] = value.clone();
break;
}
}
return object;
}; var a = { x: 1 };
var b = { y: 2, ref: a };
alert(b.ref==a); //输出true
reset(b);//解除引用
alert(b.ref==a); //输出false</script>
</head>
<body>
</body>
</html>