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

问题描述 投票:-2回答:1

我有一个使用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函数无法打印MyClass对象的“name”属性?

javascript json testcomplete
1个回答
1
投票

简答:是的,这是有原因的,正确的代码应该是这样的

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

为什么?

因为你应该存储类的实例而不是类本身,并且在Javascript中这样做我们使用新的关键字,后跟构造函数

顺便说一句,如果你检查这段代码

typeof MyClass

在控制台中你将获得功能,但它的新语法随ES2015一起提供了一个新版本的Javascript,它使得处理很多事情变得更容易,你的代码就像

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

所以这作为一个蓝图,并创建一个对象,您应该使用新的关键字,然后使用这样的构造函数

let mySimpleClass = new MyClass();

现在如果你安慰

mySimpleClass.name你将git ClassName

注意: - 如果要将my_json变量转换为实际的Json,请使用此方法

JSON.stringify(my_json);

学到更多 :

Working with Javascript Objects

JSON.stringify()

© www.soinside.com 2019 - 2024. All rights reserved.