gpt4 book ai didi

javascript - 在 JavaScript 中使用原型(prototype)而不是类

转载 作者:行者123 更新时间:2023-12-01 04:01:56 24 4
gpt4 key购买 nike

有理由使用原型(prototype)而不是类吗?如果我理解正确的话,如果我在构造函数中定义了函数,原型(prototype)会更有效(但这里不是这种情况)。这些实现语法之间唯一不同的是吗?

    class Quiz {
constructor(questions) {
this.score = 0;
this.questionArray = questions;
this.questionIndex = 0;
}

getCurrentQuestionObj() {
return this.questionArray[this.questionIndex];
}

isGameOver() {
return this.questionArray.length === this.questionIndex;
}

guess(answer) {
if(this.getCurrentQuestionObj().isCorrectAnswer(answer)) {
this.score++;
}
this.questionIndex++;
}
}

-

function Quiz(questions) {
this.score = 0;
this.questions = questions;
this.questionIndex = 0;
}

Quiz.prototype.getCurrentQuestionObj = function() {
return this.questions[this.questionIndex];
}

Quiz.prototype.isGameOver = function() {
return this.questions.length === this.questionIndex;
}

Quiz.prototype.guess = function(answer) {
if(this.getCurrentQuestionObj().correctAnswer(answer)) {
this.score++;
}
this.questionIndex++;
}

最佳答案

ES6 类只不过是糖而已。你的两个例子是等价的。

关于构造函数中声明的函数 - 你是对的,这些函数的效率会稍微低一些。如果您在构造函数中设置“this.foo = function() {}”,则每次使用构造函数实例化时都会创建一个新函数。

关于javascript - 在 JavaScript 中使用原型(prototype)而不是类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42126915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com