向JavaScript对象动态添加多个属性

向JavaScript对象动态添加多个属性,javascript,object,Javascript,Object,该场景是立即向JavaScript对象动态添加一些属性 例如,有一个对象“数据” 然后将额外数据添加到“数据” 在“数据”中添加“extraData”的最佳方法或最简单方法是什么?最现代的方法是使用ES6: 或者,这将是传统的做法: var moreData = Object.assign({}, data, extraData); 下面是一个很好的方法: <script src="http://code.jquery.com/jquery-1.9.1.js"></scrip

该场景是立即向JavaScript对象动态添加一些属性

例如,有一个对象“数据”

然后将额外数据添加到“数据”


在“数据”中添加“extraData”的最佳方法或最简单方法是什么?

最现代的方法是使用ES6:

或者,这将是传统的做法:

var moreData = Object.assign({}, data, extraData);

下面是一个很好的方法:

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
  $(function(){
       var data = {
            PropertyA: 1,
            PropertyB: 2,
            PropertyC: 3,
        };
        if(true){
            var extraData = {
                PropertyD: 4,
                PropertyE: 5,
                PropertyF: 6,
            };
        } else {
            var extraData = {
                PropertyX: 4,
                PropertyY: 5,
                PropertyZ: 6,
            };
        }

        var object = $.extend({}, data, extraData);

        console.log(object);

    });
</script>

$(函数(){
风险值数据={
物业a:1,,
财产b:2,
财产c:3,
};
如果(真){
var外部数据={
财产d:4,
财产:5,
财产f:6,
};
}否则{
var外部数据={
财产X:4,
财产Y:5,
财产Z:6,
};
}
var object=$.extend({},data,extraData);
console.log(对象);
});
如果不想改变数据的值,可以这样做:

var newData = Object.assign({}, data, extraData);

请参阅对象.assign(数据、条件?extraDataDEF:extraDataXYZ)的可能重复项。既然可以用Javascript轻松完成这样的事情,为什么还要引入像jQuery这样的整个库呢?好问题!为什么jQuery存在,javascript存在。是的,这是ES6。我需要包含什么库来实现这一点?添加到这个答案中,您可以在这里了解分配和传播之间的区别,您可以使用类似Babel的东西:。如果这不是一个选项,我已经在更新的答案中提供了一个替代解决方案。@PatoSalazar除了突变的风险之外,真的没有区别。
var moreData = Object.assign({}, data, extraData);
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script>
  $(function(){
       var data = {
            PropertyA: 1,
            PropertyB: 2,
            PropertyC: 3,
        };
        if(true){
            var extraData = {
                PropertyD: 4,
                PropertyE: 5,
                PropertyF: 6,
            };
        } else {
            var extraData = {
                PropertyX: 4,
                PropertyY: 5,
                PropertyZ: 6,
            };
        }

        var object = $.extend({}, data, extraData);

        console.log(object);

    });
</script>
Object.assign(data, extraData);
var newData = Object.assign({}, data, extraData);