Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 复制对象文字的更美观的方式?_Javascript - Fatal编程技术网

Javascript 复制对象文字的更美观的方式?

Javascript 复制对象文字的更美观的方式?,javascript,Javascript,这是客户端。网页包,巴别塔和巴别塔进口 我的项目有一个名为“models”的文件夹,其中包含对象文本,作为来自端点的预期JSON结果的定义 对象仅包含字符串、整数、布尔值和包含这些数据类型的数组/对象 例如: 当我想使用模型定义时,为了确保引用没有问题,我必须使用: let newObject1 = Object.assign({}, originalObj ) 或 我觉得这有点难看,它污染了我的代码一点 我希望能够在对象文本上使用new关键字,但这当然不是一件事 let clone = ne

这是客户端。网页包,巴别塔和巴别塔进口

我的项目有一个名为“models”的文件夹,其中包含对象文本,作为来自端点的预期JSON结果的定义

对象仅包含字符串、整数、布尔值和包含这些数据类型的数组/对象

例如:

当我想使用模型定义时,为了确保引用没有问题,我必须使用:

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();