在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ 用for...in和hasOwnproperty克隆對(duì)象,可是報(bào)錯(cuò)克隆對(duì)象的屬性

用for...in和hasOwnproperty克隆對(duì)象,可是報(bào)錯(cuò)克隆對(duì)象的屬性不能為空,這是為什么?明明就有值

    function Fn() {
        this.x=100;
        this.y=200;
        this.getY=function(){
            console.log(this.y);
            
        }
    }
    var f1=new Fn;
    var f3=null;
    cloneObj(f3,f1);
    console.log(f3);
    
    function cloneObj(obj1,obj2) {
        for (var key in obj2) {
            if (obj2.hasOwnProperty(key)) {
                console.log(obj2[key]);     //100
                obj1[key]=obj2[key];        //Cannot set property 'x' of null
            }
        }
        return obj1;
    }

clipboard.png

實(shí)在是不懂....打印的時(shí)候明明obj2[x]===100,為什么下一行就報(bào)錯(cuò)了?

回答
編輯回答
葬愛(ài)

f3 是 null 啊 也就是 obj1是null
null['x'] = obj2['x'] 是什么鬼

2017年4月8日 15:23
編輯回答
青黛色

把 f3 賦值成 {}

2017年2月1日 06:22
編輯回答
陌顏

首先要賦值 f3 = {},
其次可以更簡(jiǎn)單的clone:

function Fn() {
    this.x=100;
    this.y=200;
    this.getY=function(){
        console.log(this.y);
        
    }
}
var f1=new Fn;
var f3={};
Object.assign(f3,f1)
2018年8月28日 00:51