Javascript类构造的对象未定义
Javascript class constructed object is undefined
新增JavaScript。有人能帮我理解为什么调用print()
会返回undefined吗?
class Quizer {
constructor(quizObj) {
this.quiz = quizObj;
}
print() {
console.log(quiz.title);
}
};
var quizObjects = {
title: "Quiz1"
};
构造:
var quiz = new Quizer(quizObjects);
quiz.print(); //undefined
代码的问题是,
class Quizer {
constructor(quizObj) {
this.quiz = quizObj;
}
print() {
console.log(quiz.title);
//You are not using the `this` context here to access the quiz
//you have a variable quiz outside the class declaration that points the instance of this class.
//That will get hoisted and will be accessed here.
}
};
var quizObjects = { title: "Quiz1" };
var quiz = new Quizer(quizObjects);
quiz.printAllQuestions(); //undefined
//--------^^^^ printAllQuestions is not a member function of Quizer
解决方案:
class Quizer {
constructor(quizObj) {
this.quiz = quizObj;
}
print() {
console.log(this.quiz.title);
}
};
var quizObjects = { title: "Quiz1" };
var quiz = new Quizer(quizObjects);
quiz.print(); //Quiz1
如果您还不太熟悉类语法,下面的内容应该也适用。
Quizer = function (quizObj) {
this.quiz = quizObj;
};
Quizer.prototype = {
print: function () {
console.log(this.quiz.title);
}
}
var quizObjects = { title: "Quiz1" };
var quiz = new Quizer(quizObjects);
quiz.print();
相关文章:
- 在CoffeeScript文件上运行Jasmine测试时,对象未定义错误
- JavaScript 对象 - 未定义的数字键文字
- 为什么页面方法对象未定义
- JavaScript对象表示嵌套对象未定义
- Javascript类构造的对象未定义
- JQuery TypeError:对象未定义(length=object.length,)
- 用于从许多带有“for”循环的URL中获取HTML信息的X射线使对象未定义
- 如何避免收到一条消息,指出对象未定义
- JavaScript 对象未定义
- JavaScript 对象未定义它是否在几年前工作
- 揭示模块模式:对象未定义
- 对象未定义/HTML使用jQuery输出
- 为什么子 html 对象未定义/空
- 提取 JSON 对象未定义
- 为什么这个带有最简单的构造函数的 javascript 对象未定义
- “对象”未定义日历.js
- 对象未定义到模块中,Nodejs javascript
- javascript对象未定义
- Twilio响应对象未定义,但没有错误
- 为什么"对象未定义”;在这种情况下没有抛出错误