JavaScript:从JSON数组实例化一个类

时间:2017-12-21 22:43:05

标签: javascript json testcomplete

我有一个使用JavaScript的TestComplete(UI测试)项目,我试图在JSON中存储类引用。似乎我的代码不起作用,所以我可能对JavaScript如何处理JSON中的类引用有一个概念上的误解。这里的代码展示了我的思路:

class MyClass {
  constructor() {
    this.name = "ClassName";
  }
}

function print_name(str_name) {
  console.log(str_name);
}

let my_json = {
    "keyOne": [
        MyClass
    ]
};

let class_ref = my_json["keyOne"][0];
print_name(class_ref.name);

有没有理由说print_name函数无法打印" name" MyClass对象的属性?

1 个答案:

答案 0 :(得分:1)

简答:是的,有理由这样做 正确的代码应该是这样的

let my_json = {
"keyOne": [
    new MyClass()
    ]
};
为什么?

因为你应该存储类的实例而不是类本身 要在 Javascript 中执行此操作,我们使用 new 关键字,后跟构造函数

BTW如果您查看此代码

typeof MyClass

在控制台中,您将获得功能 但它的新语法ES2015附带了一个新版本的Javascript,可以更轻松地处理很多事情 并且您的代码与

相同
function MyClass(){
this.name = "ClassName";
}

所以这可以作为蓝图并创建一个对象,你应该使用 new 关键字,然后是构造函数 像这样

let mySimpleClass = new MyClass();

现在,如果您安装

mySimpleClass.name 你将git ClassName

注意: - 如果您想将 my_json 变量转换为实际的Json 使用这个

JSON.stringify(my_json);

了解更多:

Working with Javascript Objects

JSON.stringify()