Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 附加到对象文字的_Javascript - Fatal编程技术网

Javascript 附加到对象文字的

Javascript 附加到对象文字的,javascript,Javascript,我将对象文字传递给如下函数: pre( {model:'MUserTry'} ); 然后我想补充一下,但最后我还是这样写了下来 pre : function( o_p ) { o_p = { result: '0', page : {} }; 模型现在不见了,因为o_p是全新的 附加对象属性的最佳方式是什么 您现在必须明确定义它们吗 o_p.result = 0; o_p.page = {}; 或者

我将对象文字传递给如下函数:

pre( {model:'MUserTry'} ); 
然后我想补充一下,但最后我还是这样写了下来

    pre : function( o_p ) {
        o_p = {
            result: '0',
            page  : {}
        };
模型现在不见了,因为o_p是全新的

附加对象属性的最佳方式是什么

您现在必须明确定义它们吗

o_p.result = 0;
o_p.page = {};
或者是否有一个函数允许我写出对象文字并将它们组合起来

有点像这样

object1.push (object2 );

您可以通过指定以下属性来添加属性:

o_p.result = '0';

这不会创建新对象,从而保留您的
模型
属性。

要添加新对象属性或方法,请使用点运算符:

obj.dog = "woof";
这也相当于:

obj["dog"] = "woof";

在您的代码中,局部变量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);
}

如果你想把它们结合起来,这个问题也会得到更广泛的解决