我是一名刚开始学习 Node.js 的学生。为什么 console.log 会给我未定义的信息?我希望它会打印出“Hello World!”反而。我哪里错了?
谢谢!
function Greetr() {
this.greeting = 'Hello World!';
}
Greetr.prototype.greet = function() {
console.log(this.greeting);
}
Greetr.prototype.greet();
最佳答案
因为您通过原型(prototype)访问问候语。在这种情况下,this
并不是您所期望的对象。您可以通过记录来查看this
是什么。
function Greetr() {
this.greeting = 'Hello World!';
}
Greetr.prototype.greet = function() {
console.log(this);
}
Greetr.prototype.greet();
如您所见,this
引用您的原型(prototype)对象
,它没有任何名为 greeting
的属性,因此它记录 未定义
。
要获得所需的结果,您首先需要创建一个对象
,然后通过该对象
调用您的greet
函数
function Greetr() {
this.greeting = 'Hello World!';
}
Greetr.prototype.greet = function() {
console.log(this.greeting);
}
var greetr = new Greetr();
greetr.greet();
关于javascript - Nodejs 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44603060/