我有一个使用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”属性?
简答:是的,这是有原因的,正确的代码应该是这样的
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);
学到更多 :