深拷贝 赋值

        // 实现克隆Clone
        // let obj = new window[this._type];
        // let obj = DObject.deepCopy(this);
        // let obj = this.constructor();
        let obj = Class.createObject(this._type, false);

1. new window[type] 

    要确保type 就是类名,否则出错。

2. DObject.deepCopy(this);

    深拷贝自己实现.

3. this.constructor();

    因为是this 调用constructor(),可能会修改this 本身,导致错误.

4. createObject 利用工厂模式克隆构造对象;

除了深拷贝外,其他方法都要进行 assign 赋值,赋值要注意值引用.

你可能感兴趣的:(javaScript)