我有一个使用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对象的属性?
答案 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);
了解更多: