在javascript中遇到init函数问题,并在init函数中分配后使用属性

时间:2016-06-19 15:14:23

标签: javascript init

我正在写三个类并希望显示一些东西,最后一个类使用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链接。

1 个答案:

答案 0 :(得分:0)

constructor的名称中有错误(未调用构造函数):

class Circle {
    constuctor(options) {

==&GT;

class Circle {
    constructor(options) {

[https://jsfiddle.net/5sv5hwLb/]