我将对象文字传递给这样的函数:
pre( {model:'MUserTry'} );
然后我希望增加它,但我最终会像这样写它。
pre : function( o_p ) {
o_p = {
result: '0',
page : {}
};
模型现在已经消失,因为o_p是全新的
追加对象属性的最佳方法是什么。
你现在必须明确定义它们吗?
o_p.result = 0;
o_p.page = {};
还是有一个函数可以让我写出对象文字并将它们组合起来吗?
有点像这样
object1.push (object2 );
答案 0 :(得分:3)
要添加新的对象属性或方法,请使用点运算符:
obj.dog = "woof";
这也是等效的:
obj["dog"] = "woof";
答案 1 :(得分:2)
您可以通过分配属性来添加属性:
o_p.result = '0';
这不会创建新对象,因此会保留您的model
属性。
答案 2 :(得分:2)
在您的代码中,通过赋值重新定义局部变量o_p:
function( o_p ) {
// assign a new value to local variable o_p
// object passed as an argument is untouched
o_p = {
result: '0',
page : {}
};
}
您可以像这样合并您的对象:
function( o_p ) {
var mergee = {
result: '0',
page : {}
};
for (var attrname in mergee) { o_p[attrname] = mergee[attrname]; }
}
或者,如果您可以使用JQuery,则可以使用extend方法:
function( o_p ) {
var mergee = {
result: '0',
page : {}
};
$.extend(o_p, mergee);
}