亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

剛開始接觸 不是很明白,希望有知道的說明下原因

剛開始接觸 不是很明白,希望有知道的說明下原因

江戶川亂折騰 2023-05-01 10:06:05
db.mongo.insert({name:'mongo'}); > var t=db.mongo.findOne(); > t{ "_id" : ObjectId("5141b98723616e67f947f356"), "name" : "mongo" } > var d=t   > d { "_id" : ObjectId("5141b98723616e67f947f356"), "name" : "mongo" } > d.password=123123> d { "_id" : ObjectId("5141b98723616e67f947f356"), "name" : "mongo", "password" : 123} > t{ "_id" : ObjectId("5141b98723616e67f947f356"), "name" : "mongo", "password" : 123}問題1var d = t是引用賦值嗎 如果是的話,怎么樣不使用引用賦值delete d.passwordtrue> d { "_id" : ObjectId("5141b98723616e67f947f356"), "name" : "mongo" } > d.password=124124> d { "_id" : ObjectId("5141b98723616e67f947f356"), "name" : "mongo", "password" : 124, "password" : 124}問題2 我執行delete d.password返回 true 說明已經刪除,為什么我再執行d.password=124會執行兩次添加> d { "_id" : ObjectId("5141b98723616e67f947f356"), "name" : "mongo", "password" : 124, "password" : 124 }
查看完整描述

2 回答

?
莫回無

TA貢獻1865條經驗 獲得超7個贊

第一個問題 ... 因為兩個條目有同樣的 ObjectId 所以視為是同一條 ...

雖然事實上不是引用賦值但你可以這么理解 ...

第二個問題無法復現所以不知 ...


查看完整回答
反對 回復 2023-05-03
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

對的,這個是單純的Javascript語法的問題。在Javascript中是存在這個問題的。即深復制和淺復制的問題:

var cloneObj = function(obj){    var str, newobj = obj.constructor === Array ? [] : {};    if(typeof obj !== 'object'){        return;
    } else if(window.JSON){
        str = JSON.stringify(obj), //系列化對象
        newobj = JSON.parse(str); //還原
    } else {        for(var i in obj){            newobj[i] = typeof obj[i] === 'object' ? 
            cloneObj(obj[i]) : obj[i]; 
        }
    }    return newobj;
};
查看完整回答
反對 回復 2023-05-03
  • 2 回答
  • 0 關注
  • 252 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號