Javascript - 创建新对象,但不传递任何参数

标签 javascript object

Javascript 新手。 尝试创建可在各种函数之间使用的数据类型(假设 OBJECT 是我在这里想要的)定义。到目前为止,定义只是变量(没有函数等)。我遇到的问题是我想先创建它,然后再设置属性...

我想做的...是有一个定义。

// Object Definition
function resultObj = {
    isValid: true,
    nn_name: '',
    account_name: '',
    translated_name: '',
    address1: '',
    city: '',
    state: '',
    zip: '',
    country: '',
    formattedAddress : '',
    auth_string: '',
    error_text: '',
    error_body: '',
    error_type: ''    
};

在某个时候,我将创建一个该定义的实例。

myData = new resultObj;
... do some processing here...
... set a FEW of the variables
myData.zip = '12345';

我怎样才能创建这个,这样我就不必在创建时传递所有值(或空参数)?

最佳答案

如何创建原始默认/初始对象,然后每当您必须创建另一个具有完全相同初始属性的新/独立对象时,只需将旧对象复制到新对象中?

var myData = Object.assign({}, resultObj); 

您可以使用 Object.assign创建一个精确的副本。

The Object.assign() method is used to copy the values of all enumerable own properties from one or more source objects to a target object. It will return the target object.

var resultObj = {
    isValid: true,
    nn_name: '',
    account_name: '',
    translated_name: '',
    address1: '',
    city: '',
    state: '',
    zip: '',
    country: '',
    formattedAddress : '',
    auth_string: '',
    error_text: '',
    error_body: '',
    error_type: ''    
};

var myData = Object.assign({}, resultObj);
document.write(JSON.stringify(myData));  

另见:How do I correctly clone a JavaScript object?

关于Javascript - 创建新对象,但不传递任何参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900930/

相关文章:

c++ - 对象如何将自身添加到该对象的类中的 vector ?

线性内存缓冲区的 C++ 接口(interface)

javascript - Div 不会随着移动设备上的 onclick 事件消失吗?

javascript - 使用 jquery 或 javascript 实时更改输入值

javascript - 将类添加到同位素中的过滤项目和隐藏项目。按钮不是复选框

javascript - 如何在 JavaScript localStorage 中存储(字典)对象?

javascript - 使用 jquery 设置 asp 下拉列表的选定值

IF 语句中的 Javascript 对象声明

java - Libgdx 多个敌人

javascript - getComputedStyle 对象包含方法?