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';
如何创建它以便我不必在创建时传入所有值(或空参数)?
答案 0 :(得分:3)
如何创建原始默认/初始对象,然后每当必须创建具有相同初始属性的另一个新/独立对象时,您只需将该旧对象复制到新对象中?
var myData = Object.assign({}, resultObj);
您可以使用Object.assign创建完整的副本。
Object.assign()方法用于复制all的值 枚举从一个或多个源对象到目标的自有属性 宾语。它将返回目标对象。
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));
答案 1 :(得分:0)
没有必要在对象上定义所有潜在属性:
function resultObj(){}
var result = new resultObj()
result.zip = 12345
console.log(result.zip) //=> 12345
答案 2 :(得分:0)
您可以使用以下内容:
var getResultObj = function(param1, param2) {
var one = param2 ? param2 : '';
var two = param2 ? param2 : '';
var objectToBeReturned = {
isValid: true,
nn_name: one,
account_name: two,
translated_name: '',
address1: '',
city: '',
state: '',
zip: '',
country: '',
formattedAddress : '',
auth_string: '',
error_text: '',
error_body: '',
error_type: ''
};
return getResultObj;
};
每次调用getResultObj();
时,都会返回对象的新实例。
但您也可以使用任何其他Constructor Pattern模式。