javascript - 用函数解析对象
问题描述
var Car = function(name, year) {
this.name = name;
this.year = year;
this.print = function() {
console.log(name+" "+year);
}
}
var tesla = new Car("tesla", 2018);
tesla.print();
tesla = JSON.parse(JSON.stringify(tesla));
console.log(tesla);
tesla.print(); // Uncaught TypeError: tesla.print is not a function
解析后如何将打印功能添加到对象?有没有一个优雅的解决方案?
解决方案
JSON 数据格式不支持函数(如果您从 JavaScript 对象生成一些 JSON,然后尝试使用 C# 解析它,这将非常无用!)。
一个明智的方法是更改Car
构造函数,以便它可以接受一个对象作为第一个参数。
var Car = function(name, year) {
if (typeof name === "object") {
// use properties of `name` to set everything in this object
} else {
// Treat name and year as a string and number just like you are now
}
...
那么你也能:
tesla = new Car( JSON.parse(JSON.stringify(tesla)) );
…这也将生成一个具有正确原型的对象。
推荐阅读
- pdf.js - PDF.js,获取大纲的所有内容
- android - 找不到 com.zendesk:support-providers:5.0.2
- python - Jupyter notebook 内核不断需要重启
- c# - 如何在 C# 数组中查找和显示特定值
- c# - 进程 Azure AD B2C 自定义策略用于散列数据
- r - check_rhub 正在尝试安装 BiocManager 失败
- spring-boot - 如何将流量重新路由到 ip 到特定端口以显示网站
- reactjs - Jest Globals 收到“不是函数”错误,没有 Globals 可以正常工作
- python - 在字符串中执行python代码并将其存储到变量中
- node.js - Docusign - 如何为多个用户集成 docusign,每个用户都有不同的 docusign 凭据和多个客户