附加到对象文字

时间:2012-07-05 21:26:24

标签: javascript

我将对象文字传递给这样的函数:

pre( {model:'MUserTry'} ); 

然后我希望增加它,但我最终会像这样写它。

    pre : function( o_p ) {
        o_p = {
            result: '0',
            page  : {}
        };

模型现在已经消失,因为o_p是全新的

追加对象属性的最佳方法是什么。

你现在必须明确定义它们吗?

o_p.result = 0;
o_p.page = {};

还是有一个函数可以让我写出对象文字并将它们组合起来吗?

有点像这样

object1.push (object2 );

3 个答案:

答案 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);
}