将新元素添加到现有对象

时间:2012-06-15 20:32:51

标签: javascript jquery object

我一直在寻找一种方法来向现有对象添加新元素,例如使用数组推送

我试过这个并没有用:

var myFunction = {
    Author: 'my name ',
    date: '15-12-2012',
    doSomething: function(){
        alert("helloworld")
    }
};
myFunction.push({
    bookName:'mybook',
    bookdesc: 'new'
});
console.log(myFunction);

6 个答案:

答案 0 :(得分:60)

使用此:

myFunction.bookName = 'mybook';
myFunction.bookdesc = 'new';

或者,如果您使用的是jQuery:

$(myFunction).extend({
    bookName:'mybook',
    bookdesc: 'new'
});

push方法错误,因为它属于Array.prototype对象。

要创建命名对象,请尝试以下方法:

var myObj = function(){
    this.property = 'foo';
    this.bar = function(){
    }
}
myObj.prototype.objProp = true;
var newObj = new myObj();

答案 1 :(得分:13)

只需myFunction.foo = "bar"即可添加。在这种情况下,myFunction是对象的名称。

答案 2 :(得分:4)

Danilo Valente上面提到的jQuery语法不起作用。它应该如下 -

$.extend(myFunction,{
    bookName:'mybook',
    bookdesc: 'new'
});

答案 3 :(得分:3)

您可以使用Extend向现有对象添加新对象。

答案 4 :(得分:3)

您正在寻找jQuery extend method。这将允许您将其他成员添加到已创建的JS对象中。

答案 5 :(得分:0)

您可以将JSON存储在数组中,然后使用push

将JSON数据插入到数组中

检查https://jsfiddle.net/cx2rk40e/2/

$(document).ready(function(){

  // using jQuery just to load function but will work without library.
  $( "button" ).on( "click", go );

  // Array of JSON we will append too.
  var jsonTest = [{
    "colour": "blue",
    "link": "http1"
  }]

  // Appends JSON to array with push. Then displays the data in alert.
  function go() {    
      jsonTest.push({"colour":"red", "link":"http2"});
      alert(JSON.stringify(jsonTest));    
    }

}); 

JSON.stringify(jsonTest)的结果

[{"colour":"blue","link":"http1"},{"colour":"red","link":"http2"}]

此答案对于希望模拟类似结果的用户可能有用。