(使用Javascript对象进行实验)为什么我的函数在另一个函数中不起作用?

时间:2018-08-10 08:45:32

标签: javascript oop polymorphism

我在编码方面是个新手。我只想知道我在做什么错。当我尝试执行car.drive()时,即使在原始代码的drive()函数内部,unlock()函数也不起作用。我不断收到“ unlock()未定义”。

class Car extends drivable {
    constructor (color) {
        super(color);
    }
    
    drive() {
        super.drive();

        unlock(); {
            console.log("Car is unlocked");
        }
        
    }
    
const car = new Car("blue");

car.drive();

3 个答案:

答案 0 :(得分:3)

应该是:

class Car extends drivable {
    constructor (color) {
        super(color);
    }

    drive() {
        super.drive();        
        this.unlock();
    }

    unlock() {
        console.log("Car is unlocked");
    }
}

const car = new Car("blue");

car.drive();

答案 1 :(得分:2)

注意“;”。编写方式意味着您只调用该函数,而不定义它。

unlock() {
    console.log("Car is unlocked");
}

编辑: 抱歉,我错过了一些事情:

class Car extends drivable {
    constructor(color) {
        super(color);
    }

    drive() {
        super.drive();
        this.unlock();
    }

    unlock() {
        console.log("Car is unlocked");
    }
}

答案 2 :(得分:1)

在调用函数之前,必须先定义该函数。 但是,就像您可以在drive()函数内部简单地调用Items一样,这在这里没有多大意义。

无论如何,可能看起来像这样:

console.log()

或者像其他答案一样一次定义并调用函数