Javascript 如何访问类结构的参数
我有下面的代码。Javascript 如何访问类结构的参数,javascript,Javascript,我有下面的代码。Initializer中的代码我想从MyClass实例化一个对象,然后打印传递给MyClass的构造函数的内容。当我运行代码时,它会正确编译,但根本不显示任何内容 请告诉我如何访问传递给MyClass构造函数的参数: MyClass class MyClass { /** * * @param {Object} * @param {String} param.str any string */ constructor(param) { t
Initializer
中的代码我想从MyClass
实例化一个对象,然后打印传递给MyClass
的构造函数的内容。当我运行代码时,它会正确编译,但根本不显示任何内容
请告诉我如何访问传递给MyClass
构造函数的参数:
MyClass
class MyClass {
/**
*
* @param {Object}
* @param {String} param.str any string
*/
constructor(param) {
this.myString = param.str;
console.log(this.getMyString() !== null ? 'my string is not null' :
'my
string is null');
}
getMyString() {
return this.myString;
}
}
初始值设定项:
const MyClass = require('./MyClass');
class Initializer {
constructor() {
const myClass = new MyClass('any text');
console.log(myClass.myString);//displays nothing
console.log(myClass.getMyString());//displays nothing
}
}
您只需传递一个
string
,并希望访问其名为str
的属性,该属性在string
类型中不存在。因此,它返回未定义的
,并将其分配给myString
。您只需使用this.myString=param
class-MyClass{
构造函数(参数){
this.myString=param;
console.log(this.getMyString()!==null?“我的字符串不为null”:“我的字符串为null”);
}
getMyString(){
返回此.myString;
}
}
类初始值设定项{
构造函数(){
const myClass=新的myClass(“任何文本”);
log(myClass.myString);
log(myClass.getMyString());
}
}
const init=新的初始值设定项()代码>您不能作为对象的属性访问构造函数/函数参数(当然,除非您传入对象)。这一行:
this.myString = param.str;
在第一个参数的值上查找str
属性。当你称之为:
const myClass = new MyClass('any text');
…你在传递一个字符串。字符串没有str
属性
或传入对象:
const myClass = new MyClass({str: 'any text'});
…并继续使用param.str
,或更新MyClass
以使用param
而不是param.str
:
this.myString = param;
例如:
类矩形{
建造商(高度、宽度){
高度=高度;
这个。宽度=宽度;
}
//吸气剂
获取区域(){
返回这个。calcArea();
}
//方法
钙质(){
返回this.height*this.width;
}
}
常数平方=新矩形(10,10);
控制台。原木(方形面积);//100
你甚至记录了你的MyClass
构造函数以对象作为第一个参数,那么为什么你要传递一个字符串呢?你能看看我更新的代码吗?我知道我遇到了“MyClass不是构造函数”的问题,你能看看我更新的代码吗?我知道遇到了“MyClass不是构造函数”的问题@LetsamrIt:编辑问题使现有答案无效是不好的。堆栈溢出问题并不意味着是移动目标。我已回滚编辑。如果你是“非构造函数”,你还没有向我们展示(甚至在编辑中)你是如何导出MyClass
,但是基于require
调用,你必须这样做:module.exports=MyClass
@LetsamrIt:也重新编辑:你改变了事物的两面,所以它仍然是不正确的。将带有str
的对象传递到构造函数中并在构造函数中使用param.str
,或者直接传递字符串并使用第一个参数作为字符串。不是两者都有。