我正在写三个类并希望显示一些东西,最后一个类使用init函数为其属性赋值,见下文。但它不像我预期的那样有效。
class Circle1 {
constructor(options) {
}
render() {
document.getElementById('result').innerHTML = 'Hello, ';
}
}
class Circle2 {
constructor(options) {
}
render() {
document.getElementById('result').innerHTML += 'My';
}
}
class Circle {
constuctor(options) {
this.x = options.x;
this.y = options.y;
this.length = options.length;
this.bodies = [];
this.init(options);
}
init(options) {
this.first = new Circle1(options);
for (let i = 0; i < this.length; i++) {
this.bodies.push(new Circle2(options));
}
}
render() {
/**
this.first.render();
this.bodies.forEach(function(body) {
body.render();
});
**/
document.getElementById('result').innerHTML += 'World';
}
}
var c = new Circle({
x: 20,
y: 20,
length: 6
});
c.render();
此代码将在屏幕上显示“World”。
但是,如果我取消注释注释代码,并尝试在屏幕上显示“Hello,My(times length)World”,但它没有显示任何内容。
我对班级中的init函数很困惑。我以为我可以为该函数中的属性赋值,但结果告诉我它不起作用。我的代码出了什么问题?
以下是jsfiddle链接。
答案 0 :(得分:0)
constructor
的名称中有错误(未调用构造函数):
class Circle {
constuctor(options) {
==&GT;
class Circle {
constructor(options) {