Javascript 向现有对象添加新元素

Javascript 向现有对象添加新元素,javascript,jquery,object,Javascript,Jquery,Object,我在寻找一种向现有对象添加新元素的方法,就像push对数组所做的那样 我尝试过这个,但没有成功: var myFunction = { Author: 'my name ', date: '15-12-2012', doSomething: function(){ alert("helloworld") } }; myFunction.push({ bookName:'mybook', bookdesc: 'new' }); con

我在寻找一种向现有对象添加新元素的方法,就像push对数组所做的那样

我尝试过这个,但没有成功:

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

您可以使用将新对象添加到现有对象。

只需执行
myFunction.foo=“bar”
即可添加它
myFunction
是本例中对象的名称。

使用此选项:

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();

你在找那个。这将允许您向已经创建的JS对象添加其他成员。

上面Danilo Valente提到的jQuery语法不起作用。应如下所示:

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

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

看看这个

JSON.stringify(jsonTest)的结果


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

myFunction
是一个对象。对象没有
push
方法。(函数也不知道)我知道这很古老,但给变量命名myFunction至少有点让人困惑。谢谢,听起来不错,但我的另一个问题是如何给对象命名什么名字?您能更好地解释一下吗?当您执行console.log(您的对象)时,它会显示为命名对象。我们如何更改该显示名称?这也可以在lodash中找到:u.isEmpty({'a':1});//→ 假的
$(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));    
    }

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