是否有任何現有的方法將對象追加到另一個對象?將對象追加到現有對象
我已經在這個扔一起快速刺,但我不知道兩件事情:
上午我正確的處理方法?我爲append添加了一個異常,但當其他原型函數存在時呢?我應該忽略新課堂中的功能嗎?
我該如何處理null/undefined值?
另外,我剛剛考慮過數組..什麼是處理數組的最佳方式?作爲typeof運算「對象」的報告。我猜測試陣列()構造函數值將是前進的道路
比這兩個問題似乎充當我希望它其他(覆蓋/添加現有對象的各個部分只存在於新對象中)。有沒有我錯過的邊緣案例?
Object.prototype.append = function(_newObj)
{
if('object' !== typeof _newObj) {
console.info("ERROR!\nObject.prototype.append = function(_newObj)\n\n_newObj is not an Object!");
}
for (newVar in _newObj)
{
switch(typeof _newObj[newVar]){
case "string":
//Fall-through
case "boolean":
//Fall-through
case "number":
this[newVar] = _newObj[newVar];
break;
case "object":
this[newVar] = this[newVar] || {};
this[newVar].append(_newObj[newVar]);
break;
case "function":
if(newVar !== 'append'){
this[newVar] = _newObj[newVar];
}
break;
}
}
return this;
}
var foo = { 1:'a', 2:'b', 3:'c' };
var bar = { z: 26, y: 25, x: 24, w: { 'foo':'bar'}, v: function(){ alert('Hello world"'); } };
foo.append(bar);
console.info(foo);
此舉意(後來)合併'存儲值'和'新獲得'的值,它擔心我可能會無意中覆蓋超過30天以上收集的數據,如果腳本出於任何原因發生故障(空帶有不良數據的'新對象'),所以要回答你接收者對象是否也必須具有這些:不是必需的arily .. – kwah 2010-09-07 19:30:04
是的,根據你的需要,你將不得不考慮那些。我在我的代碼中佔了'undefined'',但不是'null'。 – palswim 2010-09-07 19:50:56