首页 > 解决方案 > 即使没有此属性的 GET 和 SET 方法,javascript 中构建的类是否也使该属性可用?

问题描述

见代码:

class Moto {

constructor(velAtual = 0, velMaxima = 298, dlta = 10) {
    this.velocidadeAtual = velAtual,
        this.velocidadeMaxima = velMaxima,
        this.delta = dlta
}

acelerar = function () {
    if (this.velocidadeAtual + this.delta <= this.velocidadeMaxima) {
        this.velocidadeAtual += this.delta
    } else {
        this.velocidadeAtual = this.velocidadeMaxima
    }
}

// métodos get

即使从 'velAtual' 属性中省略 get 和 set 方法,代码也会输出其中包含的值。

/*
get velAtual() {
    return this.velocidadeAtual
}
*/
get velMaxima() {
    return this.velocidadeMaxima
}
get dlta() {
    return this.delta
}

// métodos set
/*
set velAtual(velocidade) {
    this.velocidadeAtual = velocidade
}
*/
set velMaxima(maxima) {
    this.velocidadeMaxima = maxima
}
set dlta(aceleracao) {
    this.delta = aceleracao
}
}

const R1 = new Moto
R1.acelerar()
R1.acelerar()
R1.acelerar()
R1.acelerar()
console.log(R1.velocidadeAtual)

输出:40

这是否代表我编写代码的方式存在安全漏洞?我该怎么写才能更好?请我在这门课上需要帮助。

标签: javascriptclassoop

解决方案


推荐阅读