使用 this.property 与 ClassName.property 访问属性

Accessing properties using this.property versus ClassName.property

提问人:ProgramFreak 提问时间:2/28/2023 最后编辑:user3840170ProgramFreak 更新时间:3/1/2023 访问量:56

问:

这可能是一个很容易解决的问题,但我不寻找解决方案,我寻找解释。因此,我一直在努力更好地理解 JavaScript 中的对象,并且现在已经玩了大约两天的对象。但在我的学习过程中,我似乎没有找到这个问题的答案。为什么 JavaScript 允许我在使用 时调用属性的值,而如果我使用 .这里有一个例子来更具体地说明我的问题。this.propertyobject.property

class Car {
    constructor(type, year, colour) {
        this.type = type;
        this.year = year;
        this.colour = colour;
    }

    alerter() {
        alert(Car["type"] + " " + Car.year + " " + this.colour);
    }
}
const car1 = new Car("Audi", "12 Years", "Black");
car1.alerter();

结果:

undefined 未定义 Black

我知道如果我使用我会引用我的对象,但是如果我使用 Object.property,我不会引用我的对象吗? 任何帮助将不胜感激!this.property

JavaScript this

评论

2赞 Anil kumar 2/28/2023
从 mdn doc static 中理解static
3赞 Quentin 2/28/2023
请注意,在惯用的 JS 中,以大写字母开头的变量名称是为类和构造函数保留的。您应该将实例变量命名为 not .car1Car1
0赞 ProgramFreak 2/28/2023
@Anil Kumar,非常感谢您的回答!因此,如果我理解正确,使用 static 就是告诉程序我使用类作为属性而不是对象。如果是这样的话,那就太糟糕了!但我想知道静态的用例是什么。希望得到答案!!

答:

4赞 Quentin 2/28/2023 #1

this,在该上下文中,表示调用方法的对象。(延伸阅读)

Car是一个类(类似于用于创建对象的模板),与具有该属性的类(由该组成的对象)不同。Car1year