用一个函数实现克隆所有的数据类型

2018-12-24  本文已影响0人  毛毛_000e

function clone(obj) {

    var o;

    if (typeof obj == "object") {

        if (obj === null) {

            o = null;

        } else {

// instanceof检测对象A是不是对象B的实例,原理是查看对象B的prototype指向的对象是否在对象A的[[prototype]]链上,如果在,则返回true

  if (obj instanceof Array) {

                o = [];

                for (var i = 0, len = obj.length; i < len; i++) {

                    o.push(clone(obj[i]));

                }

            } else {

                o = {};

                for (var j in obj) {

                    o[j] = clone(obj[j]);

                }

            }

        }

    } else {

        o = obj;

    }

    return o;

}

上一篇 下一篇

猜你喜欢

热点阅读