簡體   English   中英

將新元素添加到現有對象

[英]Add new element to an existing object

我一直在尋找一種方法來向現有對象添加新元素,就像推送數組一樣

我試過這個並沒有用:

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

只需執行myFunction.foo = "bar"添加它。 myFunction是這種情況下對象的名稱。

Danilo Valente上面提到的jQuery語法不起作用。 它應該如下 -

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

您可以使用Extend將新對象添加到現有對象。

您正在尋找jQuery擴展方法 這將允許您將其他成員添加到已創建的JS對象中。

您可以將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"}]

這個答案可能對希望模仿類似結果的用戶有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM