在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;
};

解决方案 »

  1.   


    <!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>