Javascript 复制对象文字的更美观的方式?
这是客户端。网页包,巴别塔和巴别塔进口 我的项目有一个名为“models”的文件夹,其中包含对象文本,作为来自端点的预期JSON结果的定义 对象仅包含字符串、整数、布尔值和包含这些数据类型的数组/对象 例如: 当我想使用模型定义时,为了确保引用没有问题,我必须使用:Javascript 复制对象文字的更美观的方式?,javascript,Javascript,这是客户端。网页包,巴别塔和巴别塔进口 我的项目有一个名为“models”的文件夹,其中包含对象文本,作为来自端点的预期JSON结果的定义 对象仅包含字符串、整数、布尔值和包含这些数据类型的数组/对象 例如: 当我想使用模型定义时,为了确保引用没有问题,我必须使用: let newObject1 = Object.assign({}, originalObj ) 或 我觉得这有点难看,它污染了我的代码一点 我希望能够在对象文本上使用new关键字,但这当然不是一件事 let clone = ne
let newObject1 = Object.assign({}, originalObj )
或
我觉得这有点难看,它污染了我的代码一点
我希望能够在对象文本上使用new
关键字,但这当然不是一件事
let clone = new targetObj
在不创建引用的情况下,处理对象文本克隆的最美观的方法是什么?实现此类对象“模板”的JavaScript方法是构造函数:
function-Original(){
this.name=“String”;
这个年龄=18岁;
this.active=true;
此文件的权限=[
{新闻:真的}
];
}
var obj=新的原始版本();
控制台日志(obj)代码>实现此类对象“模板”的JavaScript方式是构造函数:
function-Original(){
this.name=“String”;
这个年龄=18岁;
this.active=true;
此文件的权限=[
{新闻:真的}
];
}
var obj=新的原始版本();
控制台日志(obj)代码>
使用new
,您不会有任何乐趣-请参阅trincot的答案-但您不必担心嵌套对象(assign
)或感到恶心(stringify+parse
)
使用new
,您将不会有任何乐趣-请参阅trincot的答案-但您不必担心嵌套对象(assign
)或感到恶心(stringify+parse
)。等等,为什么这两个都有?您询问了克隆对象文字,但给出了一个对象变量的示例。(2) 请注意,您介绍的两种方法产生不同的结果,例如,当对象嵌套较深时,或包含非普通对象(例如日期对象)时。请原谅我的经验不足。我试图复制的对象只包含字符串、数字、布尔值和包含这些数据类型的对象/数组-来自JSON,因此没有函数或日期对象。您的模型是什么样子的?你能举个例子吗?听起来你可以使用工厂函数或类似的东西。等等,为什么这两个都有?你问的是克隆对象文字,但给出一个对象变量的例子。(2) 请注意,您介绍的两种方法产生不同的结果,例如,当对象嵌套较深时,或包含非普通对象(例如日期对象)时。请原谅我的经验不足。我试图复制的对象只包含字符串、数字、布尔值和包含这些数据类型的对象/数组-来自JSON,因此没有函数或日期对象。您的模型是什么样子的?你能举个例子吗?听起来你可以使用工厂函数或类似的东西。谢谢你,这回答了我的问题,并说明了一些我不知道要问的问题。我没有意识到关于Object.assign。再次感谢!谢谢你,这回答了我的问题,也揭示了我不知道要问的问题。我没有意识到关于Object.assign。再次感谢!
let newObject2 = JSON.parse( JSON.stringify( originalObj ))
let clone = new targetObj
const model = () => ({
name: 'string',
age: 20,
array: [ 1, 2, 3 ]
});
let newObject = model();